之前几次升级 Angular 版本的经历总体还算顺利,因此原本对 Angular 8 升级到 9 的过程也比较乐观。虽然 Angular 9 开始将默认启动新的 Angular Ivy,但考虑到已经正式发布数月,甚至 Android 10 都已问世,自己的项目又没有用特别冷门的依赖,依然没有担心会遇到问题。可惜墨菲定律无处不在,最后还是花了比想象中更多的时间完成升级。
为此,本文简单介绍自己在从 Angular 8 升级到 9 最终到 10 时遇到的问题及相应的解决方法,仅供参考。
首先,Angular 官方文档提供了详细的升级说明,建议在升级项目前首先通览相关文档,了解可能存在的问题。可以从下面的链接找到升级到 Angular 10 的最新信息。
https://angular.io/guide/updating-to-version-10
下面是自己在升级时实际操作的几个主要步骤:
更新 Angular 8 相关依赖至最新版
- ng update @angular/core@8 @angular/cli@8
- ng build –prod –aot
- 确认变更
更新 @azure/msal-angular 至最新版 1.0.0
- 安装 1.0.0 版并为新版的接口变化修改代码( 1 )
- ng build –prod –aot
- 确认变更
升级至 Angular 9,检查并乎略一些依赖版本问题
- ng update @angular/core@9 @angular/cli@9 –force ( 2 )
- ng build –prod –aot
- 确认变更
- 升级 Angular Material
- ng update @angular/material@9
- 检查 Angular Material 引用问题( 3 )
- 增加 ngcc 作为 postinstall 脚本( 4 )
- ng build –prod –aot
- 确认变更
- ng add @angular/localize ( 5 )
- ng serve –ssl 启动并检查应用基本功能
升级至 Angular 10,检查并乎略一些依赖版本问题
- ng update @angular/core @angular/cli –force
- 临时手段解决 ngx-restangular 编译问题( 6 )
- ng build –prod –aot
- 确认变更
- ng update @angular/material
- ng build –prod –aot
- 确认变更
- ng serve –ssl 启动并检查应用基本功能
大功告成
对上述步骤的一些详解,请移步我的博客文章。
希望能对大家有所帮助。