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

Ionic/Angular升级Angular12至13时报不兼容对等依赖错误咨询

问题解答

必须先更新和Angular大版本强绑定的配套依赖,不然肯定卡peer依赖报错。你这次升级失败的直接原因就是项目里装的@angular-eslint整套包是12.x版本,只兼容Angular CLI 12.x版本,和要安装的13.x版本要求不匹配,直接阻断了升级流程。

操作步骤

  • 第一步先升Angular ESLint相关包
    @angular-eslint的版本号和Angular大版本是一一对应的,12.x配Angular12,13.x配Angular13。你现在devDependencies里4个@angular-eslint开头的包全是12.0.0版本,先执行下面的命令把它们升到适配13的版本:
ng update @angular-eslint/schematics@13

这个命令会自动更新所有关联的ESLint包,同步修改对应配置,不用手动改package.json。

  • 其他依赖不用提前升级,提前确认兼容性就行

    • 你现在用的Node v14.17.0符合Angular13的版本要求(要求Node 14.15.0以上的14版本、或者16.x版本),不用换Node。
    • 项目里的Capacitor 3.x相关包、Ionic 6.x相关包本身就兼容Angular13,不会卡依赖校验,不用提前调版本。
    • 现在装的TypeScript 4.2.x、RxJS 6.6.x,等下跑核心升级命令的时候,Angular CLI会自动把它们升到13兼容的版本范围,不用手动改版本号。
    • 唯一要留意的是devDependencies里的protractor:Angular13已经官方停了对protractor的内置支持,不过这不影响核心升级流程,要是升级完跑e2e测试报错,后续再迁到Cypress或者WebdriverIO就行。
  • 跑核心升级命令
    等ESLint包升完,再执行你之前的升级命令就不会报之前的错了:

ng update @angular/core@13 @angular/cli@13

要是过程中弹出非阻断性的peer依赖警告,直接加--force参数跳过就行,等升级跑完再慢慢排查个别包的兼容问题。升级前一定记得把当前代码提交到Git留个备份,出问题能直接回滚。

升级过程中Angular CLI会自动跑版本迁移脚本,大部分语法、配置的破坏性变更都会自动帮你改好,不用手动逐行调整代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 10:15:37