我有这个配置:
$ node -v
v16.13.0
$ npm -v
8.1.2
$ npm config get shrinkwrap
true
$ npm config get package-lock
true
FWIW 我在 macOS 10.15.17 上,Node.js 是通过 MacPorts 安装的。
当我运行npm install
或npm install --package-lock-only
没有package-lock.json
创建时。但是,有这样的:
$ ls -l node_modules/.package-lock.json
-rw-r--r-- 1 david admin 301536 Dec 14 18:48 node_modules/.package-lock.json
该日期在最后 10 分钟内。我已删除node_modules
并重新运行安装。而且,我已经跑了npm cache clean --force
。
当我运行npm install
输出时,会谈到一些中等严重程度的漏洞。我显然想了解更多,但得到这个:
$ npm audit
npm ERR! code ENOLOCK
npm ERR! audit This command requires an existing lockfile.
npm ERR! audit Try creating one first with: npm i --package-lock-only
npm ERR! audit Original error: loadVirtual requires existing shrinkwrap file
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/david/.npm/_logs/2021-12-15T02_48_57_735Z-debug.log
运行npm audit fix
或npm audit fix --force
不改变任何东西。
第一条消息 - 需要一个锁定文件 - 为什么还不够node_modules/.package-lock.json
好?
调试日志不包含任何有用的信息。
我已经阅读了有关 stackoverflow 和其他地方的几篇帖子,并收集了推荐的信息。假设使用此配置,应该创建文件,然后npm audit
会很高兴。但是,事实并非如此。