Even though we hard-code top-level dependency versions in package.json, the semantic versioning in their submodules cause undeterministic builds.
In order to stabilize build, [~vrockai] suggested to use NPM ShrinkWrap:
http://blog.nodejs.org/2012/02/27/managing-node-js-dependencies-with-shrinkwrap/
----
Basically what we need to do when something changes package requires version change :
{code} $ npm install package@version --save--dev $ npm shrinkwrap --dev $ git add package.json npm-shrinkwrap.json $ git commit ... {code}
Usage is straight-forward (no change here , just it silently uses {{npm-shrinkwrap.json}} instead of {{package.json}} ):
{code} $ npm install {code}
|