pnpm-lock.yaml 里有高危依赖,但项目里根本没用到,要怎么处理?

程序员文华 阅读 6

我用 GitHub Dependabot 扫描项目,发现 pnpm-lock.yaml 里有个依赖被标成高危漏洞,但我在 package.json 里完全没装这个包,应该是某个子依赖带进来的。现在 CI 被卡住了,不知道该删 lock 文件重装,还是得手动干预?

试过 pnpm why 漏洞包名 看依赖树,确实是从一个深层依赖引入的。但我不确定直接删 node_modules 和 lock 文件会不会影响其他依赖版本,有没有更安全的办法?

我来解答 赞 6 收藏
二维码
手机扫码查看
1 条解答
Code°德鑫
这种情况我遇到过,别慌。最安全的方式是用 pnpm 的 update 命令来更新那个子依赖的版本,而不是直接删 lock 文件。

复制这个命令:
pnpm update 漏洞包名 --depth 100


这会把有漏洞的包升级到最新安全版本(如果上游已经修复了的话)。depth 设大点确保能覆盖深层依赖。

如果上游还没修复,就只能等或者临时把这个包加到 package.json 的 resolutions 里强制指定安全版本:
"resolutions": {
"漏洞包名": "安全版本号"
}


删 lock 文件重装是最后手段,可能会引入其他依赖版本变化,容易踩坑。我上次这么干直接搞出 3 个新漏洞(苦笑
点赞
2026-03-06 14:41