在我的 javascript 项目中,我想冻结依赖项。为此,我使用 npm-shrinkwrap https://docs.npmjs.com/cli/shrinkwrap
我做了文档中写的事情,它有效,但我找不到任何证据表明安装确实使用文件 npm-shrinkwrap.json 中的数据
这里有更详细的解释。
我有一个超级简单的 js 项目:
bessarabov@air:~/shrinkwrap$ ls
package.json
bessarabov@air:~/shrinkwrap$ cat package.json
{
"dependencies" : {
"express" : "4.14.0",
"moment" : "2.14.1"
}
}
然后我运行npm install
(这里是日志——https: //gist.github.com/bessarabov/9920d6dcb1cd71e504c6fe561e39643f)然后我运行:
bessarabov@air:~/shrinkwrap$ npm shrinkwrap
wrote npm-shrinkwrap.json
所以,在我运行这两个命令后,我得到了新目录node_modules
和一个新文件npm-shrinkwrap.json
。
bessarabov@air:~/shrinkwrap$ ls
node_modules npm-shrinkwrap.json package.json
然后我删除已安装的库:rm -rf node_modules/
并npm install
再次运行。并且日志与没有时完全相同npm-shrinkwrap.json
(https://gist.github.com/bessarabov/33c9421744582501482e4f00453f9d38)
所以,我不确定第二个是否npm install
真的使用npm-shrinkwrap.json
文件中的数据。我想找到一种在使用的日志中查看的npm-shrinkwrap.json
方法。
我在用着:
bessarabov@air:~/shrinkwrap$ npm --version
3.3.12
bessarabov@air:~/shrinkwrap$ node --version
v5.3.0
但我也尝试过节点 6.5.0,结果是一样的。