更新依赖包后NPM manual review失效,安装node-sass出现的漏洞无法修复
npm 依赖漏洞修复方案
漏洞无法修复的原因
你之前手动安装依赖、执行npm audit fix无效的核心原因是:这些存在漏洞的包都是react-scripts@4.0.3的子依赖,npm默认优先使用上层依赖指定的版本范围,你在顶层安装的新版本不会覆盖子依赖的版本,所以漏洞提示会持续存在。
推荐修复方案
方案1:升级react-scripts(优先选择)
你当前使用的react-scripts@4.0.3是2021年的旧版本,官方已经在后续版本中修复了所有上述依赖漏洞,直接升级即可解决问题:
- 先卸载旧版本:
npm uninstall react-scripts - 安装最新稳定版:
npm install react-scripts@latest --save - 删除项目根目录下的
node_modules文件夹和package-lock.json文件 - 重新执行
npm install,漏洞提示会自动消失,绝大多数业务场景下不会出现兼容性问题。
方案2:配置overrides强制指定依赖版本(不适合升级react-scripts时选择)
如果因业务兼容原因不能升级react-scripts,可以在package.json中添加overrides字段,强制所有子依赖使用安全版本:
- 在你的package.json中添加如下配置:
{ "overrides": { "postcss": "^7.0.36", "browserslist": "^4.16.5", "glob-parent": "^5.1.2", "trim-newlines": "^3.0.1", "css-what": "^5.0.1", "normalize-url": "^4.5.1" } }
- 删除
node_modules文件夹和package-lock.json文件 - 重新执行
npm install即可。
方案3:替换废弃的node-sass(可选)
node-sass已经被官方正式废弃,存在Node版本绑定、依赖漏洞多的问题,推荐替换为兼容语法的sass(dart-sass):
- 卸载node-sass:
npm uninstall node-sass - 安装sass:
npm install sass --save - 原有scss/sass代码不需要做任何修改即可正常运行。
内容的提问来源于stack exchange,提问作者ian12_
相关产品推荐
相关产品推荐

