Angular 9升级至12卡在9升10环节,求稳妥可行的升级策略
Angular 9到12跨版本升级稳妥操作方案
升级前准备
- 先将当前所有本地修改提交到Git,确保工作区干净,全程不要加
--allow-dirty参数,避免后续出现问题无法快速回滚 - 删除项目下的
node_modules文件夹、package-lock.json/yarn.lock文件,清除旧依赖缓存的干扰 - 全局安装对应目标版本的Angular CLI,保证全局命令和项目要升级的版本匹配:
npm install -g @angular/cli@10
9→10升级实操步骤
- 优先升级核心框架包,不要加
--force跳过校验,先执行:ng update @angular/core@10 @angular/cli@10 - 如果执行后出现依赖不兼容提示,按照提示列出的不兼容第三方包,逐个升级到适配Angular 10的对应版本,不要直接跳过校验强制安装
- 核心包升级无报错后,再升级Material组件库:
ng update @angular/material@10 - 升级完成后执行
ng build测试编译,如果出现API弃用类报错,按照终端提示的修改说明调整代码即可
后续升级到12的操作逻辑
9→10升级验证通过后,按照同样的逻辑逐版本迭代升级,每次只跨一个大版本:
- 10→11:依次升级
@angular/core@11、@angular/cli@11、@angular/material@11,完成后编译验证 - 11→12:依次升级
@angular/core@12、@angular/cli@12、@angular/material@12,完成后编译验证
通用避坑技巧
- 所有第三方生态包(比如各类UI组件、工具库)都要匹配对应的Angular大版本,升级前先确认目标版本的兼容范围,不要随意升最新版
- 只有你明确确认某个依赖包兼容当前Angular版本、只是peer dependency校验有误时,再加
--force参数,其余场景都不要用 - 每次升级完一个大版本后,跑通核心功能测试再升级下一个版本,不要一次性跳过多个大版本操作
内容的提问来源于stack exchange,提问作者Miroo
相关产品推荐
相关产品推荐

