npm审核修复程序不更改任何内容

时间:2020-10-02 01:51:59

标签: node.js npm

我认为这是一个非常基本的问题,但我已经坚持了一段时间:

我正在尝试使用npm audit fix清理具有许多安全漏洞的旧存储库。运行时,我看到以下输出:

fixed 3534 of 3576 vulnerabilities in 1926 scanned packages
  42 vulnerabilities required manual review and could not be updated

但是,我发现package-lock.json中的任何内容都没有更改。因此,看来审核实际上没有做任何事情吗?运行npm install时,我再次可以看到以下内容:

found 3576 vulnerabilities (3550 low, 10 moderate, 14 high, 2 critical)
  run `npm audit fix` to fix them, or `npm audit` for details

这是否意味着审核过程无法解决任何这些问题?如果是这样,我该如何解决这些问题?

2 个答案:

答案 0 :(得分:1)

导致原因的原因:这似乎是npm中的一个已知错误,但至今尚未有人公开找出原因,至少我找不到。但是,您可以在an issue in the current npm issue tracker中看到报告,该报告链接到an issue in the archived npm issue tracker

如何解决:当我在npm中遇到此问题时,我会这样做:

$ rm -rf node_modules package-lock.json shrinkwrap.json npm-shrinkwrap.json
$ npm install

但是,我认为并非一直如此。但是,如果您还没有这样做,那值得一试。 @Kshewengger建议更新npm也是一件好事。他们建议npm install -g npm并先尝试,但如果这样不起作用,并且您不介意更新的package-lock.json文件格式和其他更改,也可以尝试npm install -g npm@7。在撰写本文时,npm install -g npm将给您npm@6.14.9npm install -g npm@7将给您npm@7.0.15

答案 1 :(得分:0)

您想了解为什么npm审核修复程序说它可以修复问题,但实际上什么也没做?

答案是为什么您不了解可能会以worldserver.diff格式进行 npm audit fix --dry-run --json)审计的想法吗?然后,决定以运行该命令并将结果与​​以前的状态进行比较。如果基于 Idea node_modules package-lock.json 中没有任何变化,则可能存在一些问题,例如通过清除存储库之类的技巧或缓存。

阐明正在发生的事情,以及为什么npm audit fix给出摘要,就像它 没做任何事情就修好了吗?

json主要影响 node_modules package-lock.json ,以便扫描项目中的漏洞并自动安装任何兼容的更新为易受攻击的依赖项。如果您没有看到基于Idea的任何更改,则说明您的项目或npm中存在问题。

为我们提供解决此问题的解决方案

请遵循上述步骤(例如,在运行审核修订之前评估更改)。 npm examples确实有助于找出预期的变化和行为。