npm audit 报了高危漏洞,但我不想升级依赖怎么办?

W″巧丽 阅读 142

我跑 npm audit 发现有个依赖有高危漏洞,但项目里用的是老版本,升级会破坏现有功能。有没有办法忽略这个漏洞或者临时绕过?

试过加 --omit=dev 也没用,还是报同样的问题。现在 CI 流水线直接卡住了,急着上线但不知道怎么处理。

有人用过 npm audit --ignore-critical 这种参数吗?好像根本不存在……或者能不能手动在 package-lock.json 里改点什么让它闭嘴?

我来解答 赞 14 收藏
二维码
手机扫码查看
2 条解答
上官慧利
遇到这种紧急情况,确实挺头疼的。npm audit 自带的选项有限,但你可以尝试以下方法来临时绕过这个问题。

首先,npm 官方并没有提供直接忽略某个高危漏洞的功能,所以 npm audit --ignore-critical 这种命令是无效的。

不过,你可以通过修改 package-lock.json 来达到目的。找到具体的漏洞项,然后在 package-lock.json 中对应的位置添加 "resolved": false"integrity": "" 字段。这样 npm 在安装时就不会再去验证这个包的完整性了。

举个例子,假设 lodash 有高危漏洞,你可以在 package-lock.json 中找到 lodash 对应的部分,然后做如下修改:

"lodash": {
"version": "存在漏洞的版本号",
"resolved": false,
"integrity": "",
"requires": {
...
}
}


改完之后记得保存文件,并重新运行 npm installnpm audit 来确认问题是否解决。虽然这不是长久之计,但在项目急需上线的情况下,这种方法可以让你暂时避开这个障碍。

不过,长远来看,还是得尽快解决这个漏洞,毕竟安全问题不能马虎。希望这个方法对你有帮助。
点赞
2026-03-22 15:06
夏侯筱萌
在项目根目录的 .npmrc 文件里加一行 audit=false,或者 CI 环境变量设置 npm_config_audit=false,直接跳过审计。生产环境上线临时这么干没问题,后续有空再处理漏洞。
点赞 1
2026-03-14 08:01