npm audit 可检测项目依赖中的已知安全漏洞,通过比对 package-lock.json 与 npm 官方漏洞库,提供风险包、严重程度、引入路径及修复建议,并支持自动修复与进阶控制。

直接在项目根目录运行 npm audit 就能检测出依赖中的已知安全漏洞。它不是靠猜,而是把 package-lock.json 里的所有依赖版本,和 npm 官方维护的安全漏洞数据库实时比对,结果准确、响应快。
基础扫描:看清哪些包有风险
执行命令后,报告会列出每个问题包的关键信息:
-
受影响包名:比如
lodash、axios或某个深层传递依赖; - 严重程度:标为 low、moderate、high 或 critical,帮你快速判断优先级;
-
漏洞路径:显示它是怎么被引入的,例如
myapp → express → debug → ms; -
修复建议:如果已有补丁版本,会直接给出升级命令,比如
npm install ms@2.1.3。
自动修复:用 fix 命令快速打补丁
多数中低危漏洞可一键修复:
-
npm audit fix—— 尝试升级到兼容的安全版本(不跨主版本); -
npm audit fix --only=prod—— 只修生产环境依赖,跳过devDependencies; -
npm audit fix --force—— 强制升级到最新主版本(需人工验证是否兼容); -
npm audit fix --package-lock-only—— 只更新package-lock.json,不重装node_modules。
进阶控制:适配不同场景
避免误报或漏报,需要配合几个关键点:
- 确保项目有
package-lock.json,它是审计的依据,没有它结果不可靠; - CI 流程中加
--audit-level=high,让构建只在高危及以上漏洞时失败; - 用
npm audit --json > report.json输出结构化数据,方便集成到安全平台或做历史比对; - 私有包或 Git 依赖不会被提交到公共审计端点,这类需结合 Snyk 等工具补充扫描。
npm audit 不是万能的,它查的是已公开披露的漏洞,对零日攻击或恶意包无能为力。但作为第一道防线,它轻量、免费、开箱即用,只要养成定期运行的习惯,就能挡住绝大多数已知风险。


















