用npm-shrinkwrap.json更新npm-update
运行什么:
npm update
如果一个npm-shrinkwrap.json文件存在? 可以
- 更新依赖关系以匹配shrinkwrap.json文件
- 更新依赖关系以遵守package.json(从而不考虑shrinkwrap.json文件)
- 什么都不做
提前致谢
当你跑步
npm update
它会更新依赖项来遵守package.json ,即使在node_modules
文件夹为空的情况下,也不会在乎npm-shrinkwrap.json
node_modules
存储的内容,这意味着update命令将使用package.json
进行安装,而install命令将使用npm-shrinkwrap.json
。
服从shrinkwrap文件没有任何意义[在大多数情况下]。
原因
-
它应该是一个稳定点的软件包的快照,这使得它完美的生产代码。
-
在shrinkwrap文件中没有
^
,~
,latest
等。 - 而且我们也知道shrinkwrap文件不应该被使用编辑器手动篡改
- 所以我们所能做的就是使用这个命令回到以前的一些依赖状态,这个事情可以用npm install来实现
但是,当你运行
npm install
它遵循shrinkwrap文件。
但是当你跑步
npm install newPkg --save
它会改变package.json
和npm-shrinkwrap.json
文件
但是当你跑步
npm update pkg --save
它只会改变npm-shrinkwrap.json
文件,而且之前我会写它将使用package.json
文件根据semver