运行npm audit检测出6个漏洞,多种修复方法无效求助
问题描述
- 运行
npm audit report检测出6个npm漏洞 - 尝试在
package.json中添加overrides字段指定相关包的最新版本:
执行"overrides": { "nth-check": "2.1.1", "@svgr/webpack": "6.5.1", "@svgr/plugin-svgo": "6.5.1", "svgo": "3.0.1", "css-select": "5.1.0" }npm update后漏洞问题仍未解决 - 尝试添加
resolutions字段并运行npx i npm-force-resolutions,报错:npm ERR! could not determine executable to run.
解决方案
1. 修复npm-force-resolutions执行错误
你之前的命令多打了一个i,正确操作步骤:
- 在
package.json中添加resolutions字段:"resolutions": { "nth-check": "2.1.1", "@svgr/webpack": "6.5.1", "@svgr/plugin-svgo": "6.5.1", "svgo": "3.0.1", "css-select": "5.1.0" } - 添加
preinstall脚本,确保每次安装依赖时自动应用版本强制:"scripts": { "preinstall": "npx npm-force-resolutions" } - 删除现有依赖文件,避免缓存干扰:
rm -rf node_modules package-lock.json - 重新安装依赖:
npm install
2. 排查overrides未生效的原因(npm 8.3+适用)
如果overrides没起作用,大概率是依赖嵌套层级或版本指定的问题:
- 先检查项目中这些包的实际安装版本:
npm ls nth-check @svgr/webpack @svgr/plugin-svgo svgo css-select - 确认指定的版本确实修复了对应漏洞(可查看包的npm版本更新说明)
- 针对深层嵌套依赖,尝试更精确的路径覆盖,比如:
"overrides": { "@svgr/webpack>@svgr/plugin-svgo>svgo>css-select>nth-check": "2.1.1" } - 同样删除依赖文件后重新安装:
rm -rf node_modules package-lock.json && npm install
3. 其他修复手段
- 升级npm到最新版本,避免版本兼容性问题:
npm install -g npm@latest - 若这些包是项目直接依赖,直接在
dependencies或devDependencies中指定最新版本,再重新安装依赖
验证修复
执行以下命令确认漏洞是否已修复:
npm audit
内容的提问来源于stack exchange,提问作者Waleed Farrukh
相关产品推荐
相关产品推荐

