2

There are solutions to increment the version number in different application. Cocoa apps have agvtool and maven has the maven-release-plugin which increments the version number on releases. Are there similar tools for nodejs?

Brig
  • 10,211
  • 12
  • 47
  • 71

3 Answers3

2

I think such a tool seems excessively heavy-handed when the only thing you need to do to increment the version number in Node.js is something as simple as:

sed -i 's/0.1.2/0.2.4/' package.json

Will change the version for your Node.js package?

If you're talking about something that will deploy your code when you explicitly mark a new version, I'd be more inclined to use git hooks and write a script to detect when a git tag is created and then start the deployment process.

You could use the pre-applypatch hook to detect when a tag is being created to run the sed script listed above and run npm publish for you automatically, but again, I don't see the point of having a heavyweight tool handle all of that when it's a simple script away (and said script could be written in Node.js, too!)

  • I wouldn't use that `sed` invocation to change the version because the string `0.1.2` might appear in the dependencies. It would be better to parse the JSON and then do `.version="0.2.4"` and then stringify. – Dan D. May 02 '12 at 00:18
  • Yes and no. You probably should use the full qualification, ``version: "0.1.2",`` but since the ``package.json`` format is fully defined and the ``version`` field is unambiguous in the definition, I don't see the point of a full JSON parse and stringify. –  May 02 '12 at 00:42
2

I think the most correct answer is to use npm version.

For example, to increment the major version of your package:

npm version major

This will increment the major version of your package and if it is a git repository it will also commit that change and create a tag of the same name of the version.

Follow up with:

git push
git push --tags
justin.m.chase
  • 13,061
  • 8
  • 52
  • 100
0

grunt-bump provides version bumping, as well as git tagging/commit/push. There are similar packages for other build tools such as gulp-bump.

Similar functionality is also now available with npm version, but with fewer configuration options.

Truffula
  • 99
  • 3