【发布时间】:2018-11-28 22:31:57
【问题描述】:
我最近从 Angular v5.2.4 与 Angular-CLI v1.7.4 合作升级到 Angular v6.0.3 与 Angular-CLI v6.0.8 合作。
由于使用动态组件,我的项目需要 JIT 编译器。因此,我的构建脚本曾经是:ng build --prod --no-aot。
我需要继续使用--prod 标志来保留摇树、代码缩小和死代码消除的好处。但是,默认情况下 --prod 启用 AOT。 --no-aot 选项曾经是禁用 AOT 的解决方案,但仍然可以获得 --prod 构建的好处。
我尝试了以下选项,如您所见,没有任何构建成功(标准 --prod 构建除外)。我也没有从 CLI 得到任何信息,这也不是很有帮助:
我已经阅读了Official Angular Deployment Docs 和Official Angular-CLI build Wiki 并没有找到任何信息来帮助解决这个问题。
有谁知道 --no-aot 选项的替代品是什么,或者在禁用 AOT 的同时进行 --prod 构建的新方法?
【问题讨论】:
-
--aot=false --build-optimizer=false应该这样做 -
确实
--aot false已经是这样做的方法,--no-aot也没有记录在旧版本中:github.com/angular/angular-cli/wiki/1-x-build。 -
未测试,但编辑您的 angular.json 文件,并在 projects/your-project/achitect/build/configurations/production 下将
aot=true替换为aot=false应该可以。你只需要使用 ng build --prod。 -
--aot=false --build-optimizer=false的组合确实有效。但是,我喜欢在angular.json中禁用 AOT 并删除附加选项的想法。我现在也会测试一下。 -
你的建议也有效,@JBNizet(部分有效)!在
angular.json中,我更改了aot=false和"buildOptimizer": false,就像@R.Richards 在他的评论中提到的那样。有了这个组合,我现在可以成功地执行ng build --prod并获得与ng build --prod --aot=false --build-optimizer=false相同的结果
标签: angular angular-cli angular-cli-v6