11月11日,Angular11.0.0正式发布,Angular11.0.0将TypeScript升级到4.0,对TypeScript3.9不再支持,放弃了对IE9、10的支持。
突破性变化
·平台服务器:如果useAbsoluteUrl用于设置platform-server,则现在还需要指定baseUrl。我们故意在次要版本中进行重大更改,因为如果useAbsoluteUrl将其设置为,true则应用程序的行为可能无法预测,从而导致难以发现但可能影响生产环境的问题。
·编译器:不再支持TypeScript3.9,请升级到TypeScript4.0。
·浏览器:在v10中,已弃用IE9、10和IE移动支持。在v11中,Angular框架完全删除了IE9、10和IEmobile支持。支持此类过时的浏览器会增加包的大小,代码复杂度和测试负载,并且还需要花费时间和精力来改进框架。例如,修复问题可能会更加困难,因为针对现代浏览器的直接修复可能会破坏旧版本,这些旧版本由于未收到供应商的更新而出现了问题。
根据其官方博客介绍,主要更新如下:
(1)更新OperationByelog
解决了router和forms的热门问题(issues),并关闭一些其他第三方的热门问题。保证对新提出的issues两周之内作出处理,并积极接受社区的贡献。
(2)自动内联字体(AutomaticInliningofFonts)
AngularCLI在编译期间会自动下载和关联应用里用到的字体,让应用更快。
(3)组件测试套件(ComponentTestHarnesses)
在Angularv9中,AngularMaterial组件支持TestHarnesses。现在在Angular11中,所有组件都可以使用TestHarnesses了。
(4)改进的报告和日志记录
对构建阶段报告进行了更改,引入了新的CLI输出更新,让开发中的日志和报告更容易阅读。
(5)更新的语言服务预览
语言服务从ViewEngine慢慢转变成Ivy,为开发者提供了更强大和更准确的体验。
(6)更新的热模块替换(HMR)支持
在Angular11中,使用HMR更便捷,直接增加--hmr参数启动应用即可:
$ngserve--hmr
(7)构建速度更快(FasterBuilds)/p>
使用TypeScriptv4.0让编译更快。安装依赖是,ngcc处理过程也快了2-4倍。
(8)实验性支持webpack5:
实验性的支持webpack5的特性。需要修改package.json文件,增加以下参数:
resolutions:{webpack:5.4.0}
(9)代码检测工具(Linting)/p>
代码检测工具从TSLint迁移到ESLint。在Angular11中,弃用TSLint和Codelyzer。
(10)其他更新:
放弃对IE9/IE10和IEmobile的支持,在IE浏览器中,仅支持IE11了。