npm audit显示高危漏洞但修复后依然存在怎么办?
我在开发一个Vue项目时,用npm audit发现有个高危漏洞(no-ssri@4.0.0),提示影响构建流程。试过运行npm audit fix和手动升级相关包,但漏洞还是没消失。项目用的是Vue CLI 4.5.13,package.json里有这些依赖:
{
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"npm": "^9.6.7",
"webpack": "^4.44.2"
}
}
查了漏洞详情说问题出在某个间接依赖里,但npm ls no-ssri显示它根本没被安装?难道是缓存问题?或者需要强制更新所有依赖?
最简单的办法,直接删掉node_modules目录和package-lock.json文件,然后重新npm install装一遍,大部分情况下这种幽灵漏洞就消失了。如果还不行,在package.json里加个overrides强制覆盖版本就行:
另外说一句,no-ssri这个包名我印象中是个山寨包,你确定不是ssri打错了?正经的包叫ssri,不是no-ssri。
1. 先清理缓存和node_modules:
2. 然后用
--legacy-peer-deps安装:3. 如果还有问题,强制升级Vue CLI相关依赖:
4. 最后检查依赖树:
如果还是显示有漏洞,可能是因为Vue CLI本身的锁定版本问题,可以考虑用
npm audit fix --force强制修复。实在不行就忍了吧,这种间接依赖的假阳性问题挺常见的,不影响实际运行就没必要太纠结。