javascript - Angular9:构建有额外的编译步骤

标签 javascript angular angular9 angularbuild

自从我将 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 installyarn install 触发安装后命令。

关于javascript - Angular9:构建有额外的编译步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61380924/

相关文章:

asp.net - window.opener.document.getElementById 不起作用

具有可选查询参数的 Angular 路由器

angular - 以 Angular 9 每 x 分钟调用一次 http 请求

angular - 在 Angular 验证器中链接两个字段

angular - 从 Angular 8 升级到 Angular 9 - 错误

javascript - 多个用户控件实例的相同 JavaScript 不起作用

javascript - React Native Router - 元素类型无效

javascript - $ ('document' ).ready() 函数在ajax响应后不起作用

javascript - AG-Grid 在导出到 CSV 时跳过列

angular - 属性 'format' 在类型 'Duration' 上不存在