A better
npm publish
- Ensures you are publishing from the
master
branch - Ensures the working directory is clean and that there are no unpulled changes
- Reinstalls dependencies to ensure your project works with the latest dependency tree
- Runs the tests
- Bumps the version in package.json and creates a git tag
- Publishes the new version to npm, optionally under a dist-tag
- Pushes commits and tags to GitHub
$ npm install --global np
$ np --help
Usage
$ np <version>
Version can be:
patch | minor | major | prepatch | preminor | premajor | prerelease | 1.2.3
Options
--any-branch Allow publishing from any branch
--skip-cleanup Skips cleanup of node_modules
--yolo Skips cleanup and testing
--tag Publish under a given dist-tag
Examples
$ np patch
$ np 1.0.2
$ np 1.0.2-beta.3 --tag=beta
You can use any of the test/version/publish related npm lifecycle hooks in your package.json to add extra behavior.
For example, here we build the documentation before tagging the release:
{
"name": "my-awesome-package",
"scripts": {
"preversion": "./build-docs"
}
}
MIT © Sindre Sorhus