尝试将级别更改为高时,命令 npmaudit-level 不起作用

问题描述 投票:0回答:3

我有一个使用 NodeJS 的前端应用程序,我试图仅在高漏洞或严重漏洞上使 npm 审核中断,因此我尝试更改文档中指定的审核级别,但它仍然会返回低漏洞正如你所看到的here

npm set audit-level high
npm config set audit-level high
npm audit

我是不是做错了什么?

我的npm版本是6.14.5 我的 NodeJS 版本是 10.17.0

node.js npm audit npm-audit
3个回答
7
投票

我知道这是一个老问题,我自己也问过同样的问题,所以我想我会回答以帮助下一个人。

基于此处的讨论

--audit-level
参数指示npm审核是否失败(以
1
退出)或不失败(以
0
退出)。这意味着,如果您指定
--audit-level=critical
,如果存在严重漏洞,它将以
1
退出,否则它将以
0
存在。然而,它不会控制/过滤报告/输出,我觉得这很烦人。

作为一种解决方法,我这样做是为了仅输出/报告我关心的级别。它不是很优雅,但如果漏洞列表很长,它对我有帮助:

npm audit --parseable | grep high

1
投票

正如弗兰克已经提到的那样,

--audit-level
仅对
npm audit
返回的退出代码有效。如果您希望简化文本输出,则必须自己解析它。这是我使用
npm
版本
9.6.7
--json
标志与 jq 结合使用的一种解决方案:

npm audit --json | jq '.vulnerabilities[] | select(.severity == "high") | .name'

这只是输出具有

"high"
漏洞的软件包的名称,但是您可以随意使用它,以获得对您更有用的输出。从
 | .name
查询末尾删除
jq
以查看返回的整个对象等。


0
投票

在 Windows 上,您必须运行:

npm audit --json | jq '.vulnerabilities[] | select (.severity == \"critical\")'

在 Linux 上,正如 J.M Janson 所说,你可以这样做:

npm audit --json | jq '.vulnerabilities[] | select(.severity == "high") | .name'
© www.soinside.com 2019 - 2024. All rights reserved.