如何将npm audit中高危或严重级别的漏洞结果导出为JSON文件
解决方案
方法1:直接通过终端重定向输出到文件(最简便)
- 你需要同时筛选**高危(high)和严重(critical)**级别的漏洞,只需将
--audit-level参数设为high即可,该参数会返回所有等于或高于指定级别的漏洞结果 - 直接使用shell输出重定向符
>即可将终端输出的JSON内容直接写入本地文件,命令如下:npm audit --audit-level high --json > audit-result.json - 执行完成后当前目录会生成
audit-result.json文件,包含所有符合级别要求的完整审计JSON数据,可直接导入JS代码解析,不存在终端内容过长无法查看的问题。
如果使用Windows PowerShell执行,为避免默认编码导致JSON解析失败,可使用以下命令:
npm audit --audit-level high --json | Out-File -FilePath audit-result.json -Encoding utf8
方法2:直接导出精简的依赖包列表(可选)
如果不需要完整审计数据,只需要漏洞关联的依赖包列表,可借助轻量JSON处理工具jq直接在导出时过滤字段,无需后续额外写JS处理:npm audit --audit-level high --json | jq '[.advisories[] | {package_name: .module_name, severity: .severity, vulnerability_title: .title, affected_versions: .vulnerable_versions}]' > high-critical-vulns.json
导出的文件会直接生成仅含必要字段的精简依赖漏洞列表。
注意事项
- npm 8及以上版本的审计JSON结构顶层字段为
vulnerabilities而非advisories,如果使用高版本npm,解析时注意对应字段调整即可。
内容的提问来源于stack exchange,提问作者cvo
相关产品推荐
相关产品推荐

