最近打算升级项目的版本,当前项目用的是angular8,但是关于多语言的打包配置特别不友好,当一套代码想要打出多个项目多种语言的话,写得配置特别不灵活,如果不需要这么多语言,倒还是ok。angular9解决了这个问题,所以打算对项目进行升级。
目前angular最新版本是上个月刚发布的12,暂时不考虑。基于angular9解决了多语言打包的问题,所以至少会升级到9,又基于以后新项目也尽量保持同个版本,所以特意对比了下angular10和11。
升级基于以下三方面进行考虑:
一.升级版本是否平滑稳定
angular10像是是一个小版本更新,除了常规的框架更新外,对开发者比较有影响的是以后任何类都要添加装饰器,关于ivy在此版本暂无明显更新,算平滑稳定。
angular11总体来说更新会多一些,除了常规的框架更新外,对ie浏览器的支持,路由参数,管道,eslint等有所更新,关于ivy在此版本暂无明显更新,也是比较平滑稳定。
ng11更新详情如下图:
二.升级node版本对之前项目是否有影响
angular8和9: 需要 Node.js 版本 10.9.0 或更高版本,angular10和11:需要 Node.js 版本12.14.1 || >=14.0.0。所以升级完之后需要看对其他项目的node版本是否有影响(正常都会向上兼容),并且测试和生产环境的node环境也应同步升级。
三.升级工作是否需要其他同事配合
升级一般意味着代码的写法会有调整或者打包方式会有调整,所以对于在线上稳定运行的项目,这方面就得格外关注,所以一般升完之后要让测试同事观察一两周体验下访问速度有无变慢,控制台有无报错等等。还有ng11不支持ie9和10拉,也得跟产品同事商量一下。
考虑完以上的方向后,基本就可以动手试试看拉,目前打算从8一步一步升级到11试试看。