我无意中删除了它,并对其进行了许多更改package.json
。一个npm install
或npm update
不再生成package-lock.json
。我尝试清除我的 npm 缓存和我的 nvm 缓存,但似乎没有任何效果。我在几个版本的 Node.js 上尝试过(6.10.3 Node.js - 3.10.10 npm 是我想要的),但它在任何版本上都不起作用。
有没有办法强制 npm 生成package-lock.json
文件?
我无意中删除了它,并对其进行了许多更改package.json
。一个npm install
或npm update
不再生成package-lock.json
。我尝试清除我的 npm 缓存和我的 nvm 缓存,但似乎没有任何效果。我在几个版本的 Node.js 上尝试过(6.10.3 Node.js - 3.10.10 npm 是我想要的),但它在任何版本上都不起作用。
有没有办法强制 npm 生成package-lock.json
文件?
默认情况下,package-lock.json
每次运行时都会更新npm install
. 但是,这可以通过设置全局禁用package-lock=false
。~/.npmrc
当全局package-lock=false
设置处于活动状态时,您仍然package-lock.json
可以通过运行来强制更新项目的文件:
npm install --package-lock
此命令是强制package-lock.json
更新的唯一可靠方法。
这在评论中得到了回答;package-lock.json
是npm
v5 及更高版本中的一个功能。npm shrinkwrap
是如何在所有版本的npm
.
使用本地包时,我发现可靠地重新生成 package-lock.json 文件的唯一方法是删除它,以及链接的模块和所有相应的 node_modules 文件夹,并让它重新生成npm i
如果您的npm版本低于版本 5,则安装更高版本以自动生成package-lock.json。
示例:将您当前的npm升级到 6.14.0 版本(示例 - 您可以选择任何其他最新版本)
npm i -g npm@6.14.0
您可以通过以下方式查看最新的npm版本列表
npm view npm versions