Angular-CLI v6:--no-aot生成选项等效

时间:2018-06-19 21:32:30

标签: angular angular-cli angular-cli-v6

我最近从与Angular-CLI v1.7.4合作的Angular v5.2.4升级到了与Angular-CLI v6.0.8合作的Angular v6.0.3。

由于使用动态组件,我的项目需要JIT编译器。结果,我的构建脚本曾经是:ng build --prod --no-aot

我需要继续使用--prod标志来保留树摇动,代码最小化和无效代码消除的好处。但是,默认情况下,--prod启用AOT。 --no-aot选项曾经是禁用AOT的解决方案,但仍然获得了--prod构建的好处。

我尝试了以下选项,并且您可以看到没有成功的构建(标准--prod构建除外)。我也没有从CLI返回任何信息,这不是很有帮助:

enter image description here

我已经阅读了Official Angular Deployment DocsOfficial Angular-CLI build Wiki,但没有找到有助于解决此问题的任何信息。

有人知道--no-aot选项的替代品是什么,还是在禁用AOT的同时进行--prod构建的新方法?

3 个答案:

答案 0 :(得分:10)

要从命令行执行此操作,请将以下选项与--prod选项一起使用。

--aot=false --build-optimizer=false

完整的命令:

ng b --prod --aot=false --build-optimizer=false

如果您不想每次都在命令行上执行此操作,则可以在 angular.json 中更改生产构建选项。

在文件中的以下路径

projects/your-project/achitect/build/configurations/production

aotbuildOptimizer选项更改为false。然后,您只需从命令行运行ng b --prod,您将获得一个不包含aotbuild-optimizer选项的生产版本。

感谢JB和Jon!

答案 1 :(得分:0)

您可以尝试以下方法:

ng build --prod --aot=false --build-optimizer=false

答案 2 :(得分:0)

在 .npmrc 文件中

legacy-peer-deps true

命令提示符

npm install 

npm config set --legacy-peer-deps=true
npm install