68

我不小心删除了我的 package-lock.json 文件。npm install 不会生成新的。如何让 npm 重新创建此文件。

4

5 回答 5

74

可能有一个名为的文件.npmrc可以包含

package-lock=false

这将导致无法生成包锁定文件。

从理论上讲,您也可以npm config set package-lock false全局打开(更改为true再次打开),但这不太可能无意中发生。

于 2018-11-06T09:38:30.863 回答
45

package-lock.json 文件是在 npm v5 中引入的,因此重新生成 package-lock.json 所需的步骤取决于您使用的 npm 版本。

供参考。让我们验证一下 node 和 npm 的版本。

npm -v

印刷:x.x.x

node -v

印刷:x.x.x

如果满足 npm 版本 > 5.xx 和节点版本 > 7.xx 的 2 个条件,我相信 package-lock.json 会自动生成

然后,根据您拥有的版本尝试以下步骤:

npm v5+:

通过运行重新生成 package-lock.json npm install。您也可以使用重新生成文件而不实际下载依赖项npm install --package-lock-only

npm v4.x 及更早版本:

  1. 通过运行生成 npm-shrinkwrap.json npm shrinkwrap。此文件与 package-lock.json 具有相同的格式,并且在 npm 的早期版本中实现了基本相同的目的(请参阅https://docs.npmjs.com/files/package-lock.jsonhttps://docs.npmjs .com/files/shrinkwrap.json有关这一点的详细信息)
  2. 将 npm-shrinkwrap.json 重命名为 package-lock.json
于 2018-02-16T00:40:54.593 回答
12

为了解决这个问题,我尝试了下面提到的事情,它对我有用:

确保您的包锁全局启用,您可以使用以下方法启用它:

npm config set package-lock true

要确保您的 .npmrc 不会阻止创建包锁定文件,请将其设置为您的 .npmrc

回声“包锁=真”>>.npmrc

注意:对于 npm 修改 node_modules 树或 package.json 为 npm -v > 5.xx 的任何操作,都会自动生成 package-lock.json

检查你的 npm 版本:npm -v

使用以下命令将您的 npm 更新到最新版本:

npm install -g npm@latest

npm i -g npm-upgrade

@将要

于 2019-07-05T06:41:10.390 回答
0

我也面临同样的问题

我刚刚package-lock=false从 .npmrc 中删除了,现在它正在创建锁定文件

于 2020-09-11T06:54:30.940 回答
-3

如果您的 npm 版本 <5,您将在运行 npm install 时shrinkwrap.json创建一个文件。

否则package-lock将在 npm 5 及更高版本上创建。

于 2018-01-25T13:42:06.930 回答