我刚刚将我的项目升级到Angular 9,第一件让我注意到的是在CI中构建时间显著增加(从2分钟增加到4分钟)。
分析日志,每次执行测试或构建时,CLI都会执行预编译。 这是由于新的Ivy架构,但据我了解,此编译应仅对不兼容Ivy的代码进行。
那么为什么我在我的构建中看到了大量Compiling @angular/common : es2015 as esm2015
(主要来自@angular包)?Angular代码本身不应与Ivy兼容吗?
注意:即使是新项目(只包含少量库),也会出现这种情况。
更新 所有需要构建的命令都会出现此问题。例如:
ng test --code-coverage=true --watch=false --browsers=ChromeHeadle
ng b -c=staging --aot
更新2
为了比较,我添加了之前 Angular 9之前 和之后Angular 9迁移的构建(构建仍然失败,但我们可以使用单元测试作为参考,总执行时间从大约2分钟增加到了大约4分钟)。