我想知道如何在没有AOT的情况下生成的Angular CLI项目中实现/激活AOT(Ahead Of Time编译)。
现在你可以生成一个新的应用程序并使用--aot标志,但一段时间后这个标志是不可用的。猜猜看,我的应用程序已经有几个月了!
所以我正在试验AOT,但无法找到明确的方法来实现它。首先,我认为我只需要:
ng build --prod --aot
但这是错误的。
可能的解决方案是使用标志生成一个新应用程序并比较文件以查看差异所在。有人已经完成了这个吗?
答案 0 :(得分:1)
AoT
没有ng mew
特有的内容。
您应该能够ng build --aot
(通常与-prod
一起使用,但不是必需的)或ng serve --aot
偶数。
请注意,AoT在历史上一直是半生不熟的,特别是在CLI中。某些事情会失败。在最新的@ angular / compiler和Angular CLI版本中情况要好得多,因此,我建议您尝试新版本并查看。
npm uninstall --global angular-cli npm cache clean npm install --global angular-cli
之后,您可以转到现有项目并运行ng init
,或尝试ng new some-new-folder
,然后将文件复制到那里。
然后运行ng build -prod --aot
并查看是否收到可以修复的错误(有时会询问具体事项),如果没有,请创建一个包含特定错误的新问题。
<强> P.S。强>
唯一不支持AoT的命令是ng github-pages:deploy
,如果您使用它,则可以使用ng github-pages:deploy --skip-build
,然后在调用之前运行ng build -prod --aot
。