npm audit [--json|--parseable]
npm audit fix [--force|--package-lock-only|--dry-run|--production|--only=dev]
扫描项目漏洞,为易受攻击的依赖自动安装兼容更新。
$ npm audit fix
运行 audit fix ,但不修改 node_modules,只更新锁文件:
$ npm audit fix --package-lock-only
跳过更新 devDependencies:
$ npm audit fix --only=prod
使用 audit fix 将语义化版本主版本更新安装为顶级依赖,不仅仅是兼容的语义化版本:
$ npm audit fix --force
进行空运行(dry run),从而了解 audit fix 会做什么,也支持以 JSON 格式输出安装信息:
$ npm audit fix --dry-run --json
扫描项目漏洞,仅显示细节,不会进行修复:
$ npm audit
使用 JSON 格式显示详细的审计报告:
$ npm audit --json
使用纯文本格式展示详细的审计报告,用制表符分隔,允许未来在脚本或者命令行后处理中复用, 例如选择打印某些列:
$ npm audit --parseable
如果要解析列,你可以使用像 awk 这样的工具,仅打印其中的一部分:
$ npm audit --parseable | awk -F $'\t' '{print $1,$4}'
audit 命令会提交(项目配置的)依赖描述到默认的 registry,请求一份已知漏洞的报告。 该报告返回内容包含根据该信息如何采取行动的说明。
你也可以通过运行 npm audit fix 让 npm 自动修复漏洞。注意,一些漏洞不能被自动修复,需要手动 干预或者评审。同样需要注意的是,由于 npm audit fix 会在底层运行 npm install,所有应用到 安装器的配置也会应用到 npm install——因此 npm audit fix --package-lock-only 才能按预 期工作。
为了确保潜在的敏感信息不会被包含在审计数据包中,一些依赖的名称(有时候是版本)可能会被替换为不透明 不可逆的标识符。这样做是为了以下依赖类型:
不可逆的标识符是由会话特定的 UUID 和被替换值计算出来的 sha256 哈希值,确保不同运行时的载荷 (payload)是一致的。