我不小心删除了它,并对包装做了很多更改。json。npm安装或npm更新不会生成包锁。json。我尝试清除我的npm缓存和我的nvm缓存,但似乎没有工作。我在几个版本的Node.js上尝试了它(6.10.3 Node.js - 3.10.10 npm是我想让它工作的),它在任何版本上都不能工作。

有没有办法强制npm生成包锁。json文件吗?


当前回答

在npm 6中。X和7。你可以使用X

npm i --package-lock-only

根据npm v6, npm v7或最新版本的文档:

——package-lock-only参数只会更新包锁。Json,而不是检查node_modules和下载依赖项。

其他回答

这个问题在评论中得到了回答;package-lock。Json是NPM v5及更高版本的特性。在NPM的所有版本中,你都可以使用shrinkwrap来创建一个锁文件。

在使用本地包时,我发现可靠地重新生成包锁的唯一方法。Json文件是删除它,以及在链接模块和所有相应的node_modules文件夹,并让它重新生成NPM I

在npm 6中。X和7。你可以使用X

npm i --package-lock-only

根据npm v6, npm v7或最新版本的文档:

——package-lock-only参数只会更新包锁。Json,而不是检查node_modules和下载依赖项。

如果你的npm版本低于版本5,那么安装更高的版本,以自动生成package-lock.json。

示例:将您当前的npm升级到6.14.0版本(示例-您可以选择任何其他最新版本)

npm i -g npm@6.14.0

您可以通过查看最新的npm版本列表

npm view npm versions

正如几个答案所解释的,你应该跑:

Npm 和

但如果它不能解决……

检查你的npm可执行文件的版本。(对我来说是3.x。X不使用包锁。Json(所有))

npm - v

它至少应该是5.x。X(引入包锁。json文件。)

要在Linux上更新npm,请遵循以下说明。

有关包文件的更多详细信息,请阅读这篇媒体报道。