如何使用 loadVirtual 和 ENOLOCK 修复 npm 审计错误?

fac*_*cVV 11 javascript node.js npm reactjs

?   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
Run Code Online (Sandbox Code Playgroud)

我运行 npm audit 并收到此错误。

当我在下面运行时:

? npm config get package-lock
true

? npm config get shrinkwrap
true
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?至于如何解决?并且 npm audit fix --force 也无法正常工作...

小智 23

像这样对我有用:

npm cache clean --force
npm audit fix --force
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说没有“npmfund”命令就有效 (2认同)

小智 18

问题是您需要目录中的package.jsonpackage-lock.json文件。

运行以下命令将为您修复它。

npm init -y

npm i --package-lock-only

npm audit
Run Code Online (Sandbox Code Playgroud)

这解决了问题


小智 11

我只是运行了它所说的命令。

npm i --package-lock-only
Run Code Online (Sandbox Code Playgroud)

然后它向我展示了 0 个漏洞。无论如何,再次运行审核修复并再次运行 0 个漏洞。


Zac*_*ger 8

该错误告诉您问题的根源:This command requires an existing lockfile.。这意味着您还没有正在尝试审核的package-lock.json支持package.jsonnpm i --package-lock-only只需生成/更新 package-lock.json 而不重新安装;npm i将重新安装并生成一个(根据您的配置)。