我不小心删除了它,并对包装做了很多更改。json。npm安装或npm更新不会生成包锁。json。我尝试清除我的npm缓存和我的nvm缓存,但似乎没有工作。我在几个版本的Node.js上尝试了它(6.10.3 Node.js - 3.10.10 npm是我想让它工作的),它在任何版本上都不能工作。
有没有办法强制npm生成包锁。json文件吗?
我不小心删除了它,并对包装做了很多更改。json。npm安装或npm更新不会生成包锁。json。我尝试清除我的npm缓存和我的nvm缓存,但似乎没有工作。我在几个版本的Node.js上尝试了它(6.10.3 Node.js - 3.10.10 npm是我想让它工作的),它在任何版本上都不能工作。
有没有办法强制npm生成包锁。json文件吗?
这个问题在评论中得到了回答;package-lock。Json是NPM v5及更高版本的特性。在NPM的所有版本中,你都可以使用shrinkwrap来创建一个锁文件。
默认为package-lock。每当你运行NPM install时,Json都会被更新。但是,可以通过在~/.npmrc中设置package-lock=false全局禁用此功能。
当全局package-lock=false设置激活时,您仍然可以强制项目的package-lock。Json文件,执行以下命令更新:
npm install --package-lock
这个命令是强制包锁定的唯一可靠方法。json更新。
在npm 6中。X和7。你可以使用X
npm i --package-lock-only
根据npm v6, npm v7或最新版本的文档:
——package-lock-only参数只会更新包锁。Json,而不是检查node_modules和下载依赖项。
正如几个答案所解释的,你应该跑:
Npm 和
但如果它不能解决……
检查你的npm可执行文件的版本。(对我来说是3.x。X不使用包锁。Json(所有))
npm - v
它至少应该是5.x。X(引入包锁。json文件。)
要在Linux上更新npm,请遵循以下说明。
有关包文件的更多详细信息,请阅读这篇媒体报道。
如果你的npm版本低于版本5,那么安装更高的版本,以自动生成package-lock.json。
示例:将您当前的npm升级到6.14.0版本(示例-您可以选择任何其他最新版本)
npm i -g npm@6.14.0
您可以通过查看最新的npm版本列表
npm view npm versions