Run npm update to automatically update my packages to the latest versions From docs: > This command will update all the packages listed to the latest version (specified by the tag config), respecting the semver constraints of both your package and its dependencies (if they also require the same package).
To convert the old versions into latest versions you need to install npm-check-updates globally or as a dev dependency then use ncu -u in your project. After that install all the packages by using npm i command. Or you can just hit the below command and it will update all the packages to the latest versions.
As of [email protected] , the npm update will change package. json to save the new version as the minimum required dependency. To get the old behavior, use npm update --no-save .
Right answer
To do so, just npm version patch
=)
My old answer
There is no pre-release
hook originally in git
. At least, man githooks
does not show it.
If you're using git-extra
(https://github.com/visionmedia/git-extras), for instance, you can use a pre-release
hook which is implemented by it, as you can see at https://github.com/visionmedia/git-extras/blob/master/bin/git-release. It is needed only a .git/hook/pre-release.sh
executable file which edits your package.json
file. Committing, pushing and tagging will be done by the git release
command.
If you're not using any extension for git
, you can write a shell script (I'll name it git-release.sh
) and than you can alias it to git release
with something like:
git config --global alias.release '!sh path/to/pre-release.sh $1'
You can, than, use git release 0.4
which will execute path/to/pre-release.sh 0.4
. Your script can edit package.json
, create the tag and push it to the server.
npm version
is probably the correct answer. Just to give an alternative I recommend grunt-bump. It is maintained by one of the guys from angular.js.
Usage:
grunt bump
>> Version bumped to 0.0.2
grunt bump:patch
>> Version bumped to 0.0.3
grunt bump:minor
>> Version bumped to 0.1.0
grunt bump
>> Version bumped to 0.1.1
grunt bump:major
>> Version bumped to 1.0.0
If you're using grunt anyway it might be the simplest solution.
This is what I normally do with my projects:
npm version patch
git add *;
git commit -m "Commit message"
git push
npm publish
The first line, npm version patch
, will increase the patch version by 1 (x.x.1 to x.x.2) in package.json
. Then you add all files -- including package.json
which at that point has been modified.
Then, the usual git commit
and git push
, and finally npm publish
to publish the module.
I hope this makes sense...
Merc.
As an addition to npm version
you can use the --no-git-tag-version
flag if you want a version bump but no tag or a new commit:
npm --no-git-tag-version version patch
https://docs.npmjs.com/cli/version
To give a more up-to-date approach.
package.json
"scripts": {
"eslint": "eslint index.js",
"pretest": "npm install",
"test": "npm run eslint",
"preversion": "npm run test",
"version": "",
"postversion": "git push && git push --tags && npm publish"
}
Then you run it:
npm version minor --force -m "Some message to commit"
Which will:
... run tests ...
change your package.json
to a next minor version (e.g: 1.8.1 to 1.9.0)
push your changes
create a new git tag release and
publish your npm package.
--force
is to show who is the boss! Jokes aside see https://github.com/npm/npm/issues/8620
If you are using yarn you can use
yarn version --patch
This will increment package.json
version by patch (0.0.x)
, commit, and tag it with format v0.0.0
Likewise you can bump minor or major version by using --minor
or --major
When pushing to git ensure you also push the tags with --follow-tags
git push --follow-tags
You can also create a script for it
"release-it": "yarn version --patch && git push --follow-tags"
Simply run it by typing yarn release-it
I am using husky and git-branch-is:
As of husky v1+:
// package.json
{
"husky": {
"hooks": {
"post-merge": "(git-branch-is master && npm version minor ||
(git-branch-is dev && npm --no-git-tag-version version patch)",
}
}
}
Prior to husky V1:
"scripts": {
...
"postmerge": "(git-branch-is master && npm version minor ||
(git-branch-is dev && npm --no-git-tag-version version patch)",
...
},
Read more about npm version
Webpack or Vue.js
If you are using webpack or Vue.js, you can display this in the UI using Auto inject version - Webpack plugin
NUXT
In nuxt.config.js
:
var WebpackAutoInject = require('webpack-auto-inject-version');
module.exports = {
build: {
plugins: [
new WebpackAutoInject({
// options
// example:
components: {
InjectAsComment: false
},
}),
]
},
}
Inside your template
for example in the footer:
<p> All rights reserved © 2018 [v[AIV]{version}[/AIV]]</p>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With