Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/luftywiranda13/generator-bunny

🐰 Jumpstart node module, like a bunny!
https://github.com/luftywiranda13/generator-bunny

automatic boilerplate bunny eslint intermediate javascript node nodejs npm open-source prettier semantic-release starter-kit yeoman-generator

Last synced: about 2 months ago
JSON representation

🐰 Jumpstart node module, like a bunny!

Awesome Lists containing this project

README

        


generator-bunny



Jumpstart node module, like a bunny!


Scaffold node module or open-source project without having to deal with complicated setup.

























## Why?

This generator includes built-in modern tools which have been widely used by the community:
- [Automated GitHub release notes generator](/releases)
- [Automated releasing with semantic-release][semantic-link]
- [Automated testing & validation before any commits][husky-link]
- [Automated source-code formatting with prettier][prettier-link]
- [Babel transpiler for writing next generation JavaScript][babel-link]
- [Eslint linting utility][eslint-link]
- [Flow static typechecker][flow-link]
- [GitHub templates (Issue & Pull Request, License, CoC, etc.)](https://github.com/blog/2111-issue-and-pull-request-templates)
- [Jest testing framework][jest-link]
- [Travis Continuous Integration config][travis-link]

![](screenshot.png)

## Getting started

### 1. Installation

```sh
npm install -g yo generator-bunny
```

### 2. Create new project

**Make a new directory:**

```sh
mkdir my-bunny
cd my-bunny
```

**Generate files:**

```sh
yo bunny
```

**Validate project:**

```sh
npm start validate
```

## Usage

### 1. First-timer

**Install and setup [semantic-release][semantic-link]:**

```sh
npm install -g semantic-release-cli
```

> **Note:** Make sure you‘ve set your repository up on GitHub before proceeding otherwise `semantic-release` installation will throw errors!

**Then run:**

```sh
semantic-release-cli setup
```

**Select Travis CI, answer `no` to `overwrite`**

> There‘s already a general purpose [Travis CI][travis-link] configuration stored in [`.travis.yml`](./app/templates/_travis.yml). You can just leave it like that because it‘s already more than enough in most common situation.

### 2. Recommended workflow

**Make some changes. If you want to commit, run (instead of `git commit`):**

```sh
npm start commit
```

**Select the type of commit**

> This project follows the [AngularJS Commit Message Conventions][angular-conventions-link]. Following a standardized commit message format is important if you want to start a maintainable and scalable project. Also it is required to generate changelog and make automated releasing works.

**Push those changes to GitHub**

```sh
git push origin master
```

> **Note:** Don‘t add tag, publish, or bump your project version manually. Let `semantic-release` do those tasks for you. Your release version number is auto-formatted based on [SemVer specifications][semver-link].

### 3. Your own workflow

> You don‘t have to follow those recommended steps. Define your own workflow if you will but one of the consequence is you don‘t get the ability to publish/release your package to [npm][npm-link] automatically.

For example, you still can do it like this:

```sh
git add .
git commit -m "I want to do it my way cause this is my project and I‘m working for myself"
```

## Tips

> Some useful scripts are provided by [nps](https://github.com/kentcdodds/nps) to help you maintain your project.

To see the list, run:

```sh
npm start
```

## FAQ

#### 1. Why does `generator-bunny` use `npm` to install dependencies?

> We did support auto-detect & auto-install dependencies using `yarn` before but then decided to drop that feature in v4 because `yarn` is buggy and `npm` has a lot more users than `yarn`.

#### 2. Why does `generator-bunny` remove lockfiles in pre-commit?

> Lockfiles are for apps, not for packages/libraries. Read more on [What do you think of lockfiles?](https://github.com/sindresorhus/ama/issues/479#issuecomment-310661514)

## Inspiration

- [Sindre Sorhus](https://github.com/sindresorhus) ⟷ [generator-nm](https://github.com/sindresorhus/generator-nm)
- [Kent C. Dodds](https://github.com/kentcdodds) ⟷ [generator-kcd-oss](https://github.com/kentcdodds/generator-kcd-oss)

## Contributors

Thanks goes to these people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):

| [
Lufty Wiranda](http://instagram.com/luftywiranda13)
[💻](https://github.com/luftywiranda13/generator-bunny/commits?author=luftywiranda13 "Code") [📖](https://github.com/luftywiranda13/generator-bunny/commits?author=luftywiranda13 "Documentation") [🚇](#infra-luftywiranda13 "Infrastructure (Hosting, Build-Tools, etc)") |
| :---: |

This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!

## License
MIT © [Lufty Wiranda](https://www.instagram.com/luftywiranda13)

[angular-conventions-link]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit
[babel-link]: https://babeljs.io
[eslint-link]: http://eslint.org/
[flow-link]: https://flow.org
[husky-link]: https://github.com/typicode/husky
[jest-link]: https://facebook.github.io/jest
[npm-link]: https://www.npmjs.com/
[prettier-link]: https://github.com/prettier/prettier
[roadmap-link]: https://github.com/luftywiranda13/generator-bunny/blob/master/other/roadmap.md
[semantic-link]: https://github.com/semantic-release/semantic-release
[semver-link]: http://semver.org/
[travis-link]: https://travis-ci.org