【发布时间】:2019-05-30 20:09:37
【问题描述】:
自从升级到 Angular 8 后,我们的项目默认启用了差异加载,从而为 ES5 和 ES2015 提供了一个 polyfill。虽然我非常欢迎这种变化,但有没有办法在开发模式下强制 ES2015 模式?我正在尝试从初始构建时间和增量构建时间中减少任何一秒,它们分别超过 40 / 8 秒。
【问题讨论】:
标签: angular ecmascript-6 angular-cli ecmascript-5
自从升级到 Angular 8 后,我们的项目默认启用了差异加载,从而为 ES5 和 ES2015 提供了一个 polyfill。虽然我非常欢迎这种变化,但有没有办法在开发模式下强制 ES2015 模式?我正在尝试从初始构建时间和增量构建时间中减少任何一秒,它们分别超过 40 / 8 秒。
【问题讨论】:
标签: angular ecmascript-6 angular-cli ecmascript-5
在使用ng serve 进行开发时默认禁用ES5。
在 Angular CLI 版本 8 及更高版本中,默认情况下会为 ng build 命令启用差异加载。 但是,ng serve、ng test 和 ng e2e 命令会生成单个 ES2015 构建,该构建无法在不支持这些模块的旧浏览器(例如 IE 11)中运行。
我相信 ng build --watch 也禁用了它,但如果这是有意的行为,我找不到参考。
【讨论】:
如果差异加载导致意外问题,或者您需要专门针对旧版浏览器支持,则可以显式禁用差异加载。
显式禁用差异加载:
在browserslist配置文件中通过去掉not关键字来启用dead或IE浏览器。将compilerOptions中的target设置为es5。
https://angular.io/guide/deployment#configuring-differential-loading
【讨论】: