You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目高/中度显式依赖漏洞无法自动修复该如何手动处理?

问题根因分析

所有报错的漏洞链路最终都指向低于13.0.0版本的@angular-devkit/build-angular,该版本的Angular构建工具依赖了存在安全漏洞的webpack-dev-server@<=4.1.0,npm audit fix会自动尝试升级存在漏洞的子依赖,但Angular官方构建工具的依赖是强版本绑定的,非兼容的子依赖版本升级会直接导致项目启动失败。
你提到的「使用最新版本Angular」大概率是全局Angular CLI版本为最新,实际项目本地依赖的Angular核心版本为12及以下,可执行ng version命令查看项目本地的Angular版本确认。

解决步骤

第一步:先恢复项目可运行状态

如果你有Git版本管理,直接将package.json和package-lock.json回退到执行npm audit fix之前的提交,再执行npm install恢复依赖即可。
如果没有版本备份,直接删除项目根目录下的node_modules文件夹、package-lock.json文件,再执行npm install重装原有版本依赖。

第二步:修复漏洞+解决启动问题,二选一即可

方案1:升级Angular到13+版本(推荐)

Angular 13及以上版本的官方构建工具已经将webpack-dev-server升级到了无该系列漏洞的版本,执行以下命令升级即可:

ng update @angular/core @angular/cli

如果跨大版本升级(比如从11升到14),建议按照官方版本序列逐步升级,避免出现兼容问题。

方案2:不升级Angular版本,强制固定子依赖版本

如果你需要保留当前Angular版本,使用npm的overrides功能(要求npm版本>=8.0.0)强制将有漏洞的子依赖替换为安全版本即可:

  1. 在项目根目录的package.json中新增overrides字段:
{
  "name": "你的项目名",
  "version": "x.x.x",
  // 原有配置保持不变,新增下面的overrides字段
  "overrides": {
    "ansi-html": "npm:ansi-html-community@^0.0.8",
    "ansi-regex": "^5.0.1",
    "glob-parent": "^5.1.2",
    "set-value": "^4.1.0",
    "webpack-dev-server": "^4.15.1"
  }
}
  1. 删除node_modules文件夹和package-lock.json文件,重新执行npm install安装依赖即可。
注意事项
  • 日常开发中不要随意对框架脚手架生成的项目执行npm audit fix,大部分底层子依赖漏洞不会影响本地开发和生产运行,强制升级反而容易出现版本兼容问题
  • 如果要处理子依赖漏洞,优先用overrides固定安全版本,或升级对应上层官方依赖

内容的提问来源于stack exchange,提问作者franfonse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:39:03