Angular项目PostCSS中度漏洞无法通过npm audit fix修复如何解决?
可行解决方案
这个漏洞是@angular-devkit/build-angular依赖的resolve-url-loader引用了存在安全问题的低版本postcss导致,npm audit fix --force会直接将build-angular降级到Angular 9对应的历史版本,属于破坏性变更,不要直接执行。
方案1:使用npm overrides强制指定安全postcss版本(推荐,不影响现有项目运行)
适用npm 8.3.0及以上版本:
- 打开项目根目录的
package.json,新增overrides配置项:
{ "name": "your-angular-project", "version": "x.x.x", // 原有其他配置 "overrides": { "postcss": "^8.4.31" } }
- 删除本地的
node_modules文件夹和package-lock.json文件 - 重新执行
npm i安装依赖,完成后再运行npm audit即可确认漏洞已修复
方案2:升级Angular CLI到安全版本
如果你可以接受小版本升级,将Angular CLI及核心依赖升级到12.2及以上版本即可从根源解决依赖问题,升级命令为:ng update @angular/cli @angular/core
注意:跨大版本升级前请做好代码及配置备份
方案3:临时忽略漏洞(仅适用于本地开发场景)
该漏洞属于正则拒绝服务漏洞,仅存在于开发依赖中,不会被打包到生产环境代码。如果暂时不想修改配置,可以选择忽略该漏洞,执行审计时可运行npm audit --omit=dev过滤开发依赖的漏洞提示。
内容的提问来源于stack exchange,提问作者jtarin2
相关产品推荐
相关产品推荐

