使用npm-shrinkwrap.json进行npm-update

时间:2016-12-08 19:12:27

标签: node.js npm

运行什么:

npm update

如果存在npm-shrinkwrap.json文件吗?是吗

  1. 更新依赖项以匹配shrinkwrap.json文件
  2. 更新依赖项以服从package.json(从而忽略shrinkwrap.json文件)
  3. 什么都不做
  4. 提前致谢

1 个答案:

答案 0 :(得分:6)

运行时

npm update

它将更新依赖项以服从package.json ,即使npm-shrinkwrap.json文件夹为空,也不会关心node_modules中存储的内容,这意味着更新命令将使用package.json安装命令将使用npm-shrinkwrap.json

在大多数情况下服从收缩包装文件没有任何意义。

原因

  • 它应该是一个稳定点的包的快照,这使得它非常适合生产代码。

  • 在shrinkwrap文件中没有^~latest等。

  • 我们也知道,收缩包装文件不应该使用编辑器手动篡改
  • 所以我们所能做的就是使用这个命令回到以前的依赖状态,这个东西可以用npm install实现

然而,当你运行

npm install 

它遵循shrinkwrap文件。

但是当你跑步时

npm install newPkg --save

它还会同时更改package.jsonnpm-shrinkwrap.json文件

但是当你跑步时

npm update pkg --save

它只会更改npm-shrinkwrap.json文件,正如我之前所写,它会根据semver使用package.json文件进行更新