Jumpstart node module, like a bunny!
Scaffold node module or open-source project without having to deal with complicated setup.
This generator includes built-in modern tools which have been widely used by the community:
- Automated GitHub release notes generator
- Automated releasing with semantic-release
- Automated testing & validation before any commits
- Automated source-code formatting with prettier
- Babel transpiler for writing next generation JavaScript
- Eslint linting utility
- Flow static typechecker
- GitHub templates (Issue & Pull Request, License, CoC, etc.)
- Jest testing framework
- Travis Continuous Integration config
npm install -g yo generator-bunny
Make a new directory:
mkdir my-bunny
cd my-bunny
Generate files:
yo bunny
Validate project:
npm start validate
Install and setup semantic-release:
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:
semantic-release-cli setup
Select Travis CI, answer no
to overwrite
There‘s already a general purpose Travis CI configuration stored in
.travis.yml
. You can just leave it like that because it‘s already more than enough in most common situation.
Make some changes. If you want to commit, run (instead of git commit
):
npm start commit
Select the type of commit
This project follows the AngularJS Commit Message Conventions. 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
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.
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 automatically.
For example, you still can do it like this:
git add .
git commit -m "I want to do it my way cause this is my project and I‘m working for myself"
Some useful scripts are provided by nps to help you maintain your project.
To see the list, run:
npm start
We did support auto-detect & auto-install dependencies using
yarn
before but then decided to drop that feature in v4 becauseyarn
is buggy andnpm
has a lot more users thanyarn
.
Lockfiles are for apps, not for packages/libraries. Read more on What do you think of lockfiles?
Thanks goes to these people (emoji key):
Lufty Wiranda 💻 📖 🚇 |
---|
This project follows the all-contributors specification. Contributions of any kind welcome!
MIT © Lufty Wiranda