我有Node.js v.9.8.0和NPM v.5.7.1
根据this comment by npm CLI developer,npm与package-lock.json
合作:
如果您有
package.json
并且您运行npm i
,我们会从中生成package-lock.json
。如果您针对
npm i
和package.json
运行package-lock.json
,后者将永远不会更新,即使 package.json会对新版本感到满意。- 如果您手动编辑
醇>package.json
以具有不同的范围并运行npm i并且这些范围与您的不兼容package-lock.json
然后后者将更新版本 与您的package.json兼容。我将进一步运行npm 与上面的2一样。
但有时npm会改变我的package-lock.json
。例如,如果我在npm install --production
之后运行npm install
,则会更改文件内容。它将删除所有dev依赖项。
有时npm会在npm install
之后碰撞软件包版本。但是旧版本满足package.json
所以根据上面算法中的数字2 npm
应该只安装来自package-lock.json
的依赖项,并且不应该更改文件。
为什么会改变package-lock
的内容?