我有一个带有 NodeJS 的前端应用程序,我试图让 npm 审计仅在高漏洞或严重漏洞上中断,所以我尝试更改文档中指定的审计级别,但它仍然会返回低漏洞,如下所示
npm set audit-level high
npm config set audit-level high
npm audit
我做错了什么吗?
我的 npm 版本是 6.14.5 我的 NodeJS 版本是 10.17.0
我知道这是一个老问题,我自己问了同样的问题,所以我想我会回答以帮助下一个人。
根据此处的讨论,--audit-level
参数指示 npm 审计是否失败(以1
退出(或不失败(以0
退出(。这意味着,如果您指定--audit-level=critical
,如果存在严重漏洞,它将以1
退出,否则它将与0
一起存在。但是,它不控制/过滤报告/输出,我觉得这很烦人。
作为一种解决方法,我这样做是为了仅输出/报告我关注的级别。它不是很优雅,但如果漏洞列表很长,它会帮助我:
npm audit --parseable | grep high
正如弗兰克已经提到的那样--audit-level
只有npm audit
返回的退出代码的影响。如果您希望简化文本输出,则必须自己解析它。这是我使用9.6.7
--json
标志与 jq 结合使用npm
的一个解决方案:
npm audit --json | jq '.vulnerabilities[] | select(.severity == "high") | .name'
这只会输出具有"high"
漏洞的软件包的名称,但您可以随心所欲地使用它来获得对您更有用的输出。从jq
查询的末尾删除| .name
,以查看返回的整个对象。