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

pQu*_*123 9 node.js npm

运行什么:

npm update
Run Code Online (Sandbox Code Playgroud)

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

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

提前致谢

bug*_*s94 8

当你跑步

npm update
Run Code Online (Sandbox Code Playgroud)

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

服从收缩包裹文件没有任何意义[在大多数情况下].

原因

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

  • 没有^,~,latest等在拆封文件.

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

但是当你跑步时

npm install 
Run Code Online (Sandbox Code Playgroud)

它遵循shrinkwrap文件.

但是当你跑步的时候

npm install newPkg --save
Run Code Online (Sandbox Code Playgroud)

它将同时更改package.jsonnpm-shrinkwrap.json归档

但是当你跑步的时候

npm update pkg --save
Run Code Online (Sandbox Code Playgroud)

它将只更改npm-shrinkwrap.json文件,因为我之前会package.json根据semver 使用文件进行更新