从package.json删除软件包后,package-lock.json没有更新?

时间:2020-09-24 04:15:20

标签: javascript npm

如果我手动将软件包添加到package.json,然后运行npm install,则我的package-lock.json将使用该新软件包的依赖项进行更新。

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

那么-package-lock.json仅在package.json中添加/更新软件包时才被修改吗?不是在删除时?

2 个答案:

答案 0 :(得分:1)

这是npm的已知问题。

查看问题:package-lock.json file not updated after package.json file is changed

“目前,我正在通过将npm install命令更改为rm -f package-lock.json && npm install来解决此问题。显然,这不是一个优雅的解决方案,在某种程度上违背了使用锁定文件放在首位。”

rm -f package-lock.json && npm install

这应该在以下位置解决:https://github.com/npm/npm/pull/17508

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

答案 1 :(得分:0)

NodeJs docs

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

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

因此,在第一种情况下,npm从package.json中读取软件包条目,因为这是唯一包含特定软件包条目的文件。 而在第二种情况下,它是从package-lock.json中读取它的,就像它的默认行为一样