自从我将 Angular8 项目更新到 Angular9 后,我可以看到编译为 esm 的额外步骤。 这使得我的构建时间延长了 1 分钟。
它看起来像这样:
Compiling @angular/animations : es2015 as esm2015
Compiling @angular/cdk/keycodes : es2015 as esm2015
Compiling @angular/compiler/testing : es2015 as esm2015
Compiling @angular/core : es2015 as esm2015
Compiling @angular/cdk/collections : es2015 as esm2015
Compiling @angular/common : es2015 as esm2015
...
有人知道这一步的用途吗? 是否有任何选项可以禁用它?
最佳答案
这是 ngcc 将所有模块编译成 ivy 兼容代码。
您无法删除它,因为 Ivy 需要它才能运行。 但您可以执行一次,这会将文件生成到node_modules中,并且在添加任何新的依赖项或更新 Angular 之前,您不必再次执行此操作。
将此添加到您的 package.json
scripts
部分
"scripts": {
...
"postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points"
...
}
然后运行npm install
或yarn install
触发安装后命令。
关于javascript - Angular9:构建有额外的编译步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61380924/