从 package.json 中删除包后 package-lock.json 未更新?

Gam*_*007 12 javascript npm

如果我手动添加一个包package.json然后运行npm install,我的包package-lock.json就会更新为该新包的依赖项。

package.json但是,如果我随后从from中手动删除该包npm install,则该包的依赖项不会从 中删除package-lock.json

所以 -package-lock.json只有在添加/更新包时才会被修改package.json?删除的时候不行吗?

Jer*_*Joy 8

这是 npm 的一个已知问题。

请参阅问题:package.json 文件更改后 package-lock.json 文件未更新

“ 现在,我正在通过将 npm install 命令更改为 rm -f package-lock.json && npm install 来解决这个问题。显然,这不是一个优雅的解决方案,并且在某种程度上违背了拥有锁定文件的初衷。 ”

rm -f package-lock.json && npm install
Run Code Online (Sandbox Code Playgroud)

这应该在:https://github.com/npm/npm/pull/17508中修复

请参阅文章:https://medium.com/coinmonks/everything-you-wanted-to-know-about-package-lock-json-b81911aa8ab8以更好地理解。

  • 所有这些信息都是 3 年前的……所以这不是应该修复的吗? (7认同)

Del*_*nto -2

来自NodeJs 文档

package-lock.json 设置当前安装的每个包的版本,npm 在运行 npm install 时将使用这些确切的版本。

NPM 默认情况下会读取 package-lock.json 文件。

因此,在第一个场景中,npm 从 package.json 读取包条目,因为这是唯一具有特定包条目的文件。而在第二种情况下,它是从 package-lock.json 读取它,这是它的默认行为