用npm-shrinkwrap.json更新npm-update

运行什么:

npm update 

如果一个npm-shrinkwrap.json文件存在? 可以

  1. 更新依赖关系以匹配shrinkwrap.json文件
  2. 更新依赖关系以遵守package.json(从而不考虑shrinkwrap.json文件)
  3. 什么都不做

提前致谢

当你跑步

 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.jsonnpm-shrinkwrap.json文件

但是当你跑步

 npm update pkg --save 

它只会改变npm-shrinkwrap.json文件,而且之前我会写它将使用package.json文件根据semver