启用AoT时,Angular应用程序上的运行时错误

时间:2018-01-03 15:15:01

标签: angular angular-cli angular5

我最近将应用的Angular版本从2.4升级到5.1.2,遵循此工具中的指南:https://angular-update-guide.firebaseapp.com/。我也使用angular-cli 1.6.3

现在,更新后,在运行^10时,一切都以开发模式运行。此外ng serve(带或不带ng build标志)运行时没有错误。但是,--aotng serve --aot会产生运行时错误:

ng serve --aot runtime error

我发现调试此问题非常困难,因为堆栈跟踪并不指向我编写的任何文件。它可能是一个引导问题吗?

此时我并不是在寻找问题的完整解决方案,而是建议我可以从哪里开始寻找。

到目前为止我已尝试过:

  • 搜索类似问题,可能与此相关:Error when loading a Angular app with AOT build on Amazon S3
  • 检查ng serve --prod中的引导配置是否与某些示例匹配
  • 将节点从9.1.0更新为9.3.0(由Vincent建议)
  • 创建了一个新的angular-cli项目,并将polyfills.ts文件从新项目复制到现有项目

2 个答案:

答案 0 :(得分:0)

我从未弄清楚实际问题是什么,但它肯定与动画有关。当我完全禁用应用程序的动画时,错误消失了,这不是理想的,但在我有更多时间重新编写过去使用动画的任何模块和/或组件之前,它可以作为临时修复。

答案 1 :(得分:0)

我来自npm的角度软件包没有匹配的版本号。对齐所有库版本后,我可以同时使用ng serve --aotng serve --prod

如果运行时能够在AOT成为现实之前就能够轻柔地处理内部兼容性,这将是有意义的。现在我们有了AOT,性能才是关键,因此可以消除运行时的故障保险柜。

动画也都可以正常工作。