为什么“npm install”不重写 package-lock.json?如果不存在也不生成新的?

Why does not “npm install” rewrite package-lock.json? And also not generate new one if not exist?

在 package.json 和 运行ning npm install 中添加新的依赖项后,我希望在我的 package-lock.json 文件中看到更改 - 但是 package-lock.json没有改变。 设置: 节点版本 6.11.0 npm 版本 3.10.10 我试图在 运行 npm install 之后删除旧包-lock.json - 没有生成新文件。 谁能告诉我如何续订包裹-lock.json? 编辑: 有时我和我的同事有不同的 npm 版本,所以我在代码库中有 package-lock.json,但无法更新它,因为我当前的 npm 版本不支持这个特征。更新后一切正常。

Why does not “npm install” rewrite package-lock.json?

因为 package-lock.json 的目的是告诉 npm 要安装哪些模块(如果存在)。如果不存在,npm 将其写入 "cache" 后续安装的依赖树。

只需 rm package-lock.json 并再次安装以更新 package-lock.json

And also not generate new one if not exist?

如果您没有生成任何 package-lock.json,您很可能使用不支持它的旧版本 npm 您已将 npm 配置为不生成它(这是可能的)。

偶尔我和我的同事有不同的 npm 版本,所以我在代码库中有 package-lock.json,但无法更新它,因为我当前的 npm 版本不支持此功能。更新后一切正常。

package-lock.json 是在 npm v5 中引入的。 您的 npm v3.10.10 版本没有使用它,您可能需要更新它