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

升级Angular 18.2后执行npm命令仍存42个漏洞,如何修复?

Angular 18.2 漏洞修复方案

核心问题说明

你执行npm audit fix --force后漏洞暴增,是因为该命令会无视Angular的依赖版本兼容性规则,强制升级/降级依赖,反而引入了更多不兼容且带漏洞的包。先回滚到之前的状态再处理:


步骤1:回滚强制修复操作

用Git恢复原始的package-lock.json和node_modules:

git restore package-lock.json node_modules

重新执行安装回到初始漏洞状态:

npm install --legacy-peer-deps

步骤2:精准分析漏洞来源

执行npm audit查看完整漏洞详情,重点确认:

  • 漏洞来自业务侧安装的第三方依赖(如UI组件库、工具库),还是Angular核心的间接依赖
  • 漏洞属于开发环境依赖(如构建工具),还是生产环境依赖

步骤3:分场景修复

场景1:漏洞来自第三方业务依赖

找到对应漏洞包,确认其npm页面的最新修复版本,执行升级:

npm update [漏洞包名称] --legacy-peer-deps

若升级后出现peer依赖冲突,要么等待该包适配Angular 18,要么替换为兼容Angular 18的同类库。

场景2:漏洞来自Angular核心间接依赖

先确保Angular CLI和核心包为最新18.2.x版本:

ng update @angular/cli @angular/core

Angular官方会同步更新核心依赖版本,修复已知漏洞。

场景3:peer依赖冲突引发的漏洞

尽量避免依赖--legacy-peer-deps跳过检查,执行无该参数的安装命令:

npm install

查看具体的peer依赖冲突,手动调整依赖版本:

  • 若为旧库未适配Angular 18,可暂时保留--legacy-peer-deps并忽略不影响生产的漏洞(如开发环境工具漏洞),等待库作者更新。

步骤4:处理无法自动修复的漏洞

若npm audit fix(不加--force)无法修复,尝试以下方法:

  1. 用npm ls [漏洞包名称]追踪依赖调用链,确认是否为必要依赖,移除无用依赖降低风险。
  2. 强制指定修复版本:在package.json中添加resolutions字段,比如:
    "resolutions": {
      "漏洞包名称": "修复后的版本号"
    }
    
    执行npm install即可强制替换依赖版本。

后续预防

  • 非必要不使用--legacy-peer-deps,升级时优先解决peer依赖冲突而非跳过。
  • 定期执行ng update保持Angular核心依赖最新,官方会及时修复漏洞。
  • 定期清理无用依赖,减少漏洞暴露面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:10:08