启用 AoT 时 Angular 应用出现运行时错误
Runtime error on Angular app when AoT is enabled
我最近将我应用程序的 Angular 版本从 2.4 更新到 5.1.2,遵循此工具中的指南:https://angular-update-guide.firebaseapp.com/。我也在使用 angular-cli 1.6.3
现在,更新后,在 运行 ng serve
时一切都可以在开发模式下运行。 ng build
(带或不带 --aot
标志)也运行无误。但是,ng serve --aot
或 ng serve --prod
会产生运行时错误:
我发现很难调试这个问题,因为堆栈跟踪没有指向我编写的任何文件。可能是自举问题?
此时我不是在寻找问题的完整解决方案,而是关于我可以从哪里开始寻找的建议。
到目前为止我已经尝试过:
- 正在搜索类似问题,这可能是相关的:Error when loading a Angular app with AOT build on Amazon S3
- 检查了我在
main.ts
中的引导配置是否与一些示例相匹配
- 将节点从 9.1.0 更新到 9.3.0(Vincent 建议)
- 创建了一个新的 angular-cli 项目并将 polyfills.ts 文件从新项目复制到我现有的
我一直没弄清楚真正的问题是什么,但它肯定与动画有关。当我完全禁用应用程序的动画时,错误消失了,这并不理想,但可以作为临时修复,直到我有更多时间重新编写任何模块 and/or 曾经使用动画的组件。
我的 angular 包,来自 npm,没有匹配的版本号。对齐所有库版本后,我能够同时使用 ng serve --aot
和 ng serve --prod
!
如果运行时能够在 AOT 出现之前温和地处理内部兼容性,这将是有意义的。现在我们有了 AOT,性能是关键,所以运行时故障保险已被剥离。
动画效果也很好。
我最近将我应用程序的 Angular 版本从 2.4 更新到 5.1.2,遵循此工具中的指南:https://angular-update-guide.firebaseapp.com/。我也在使用 angular-cli 1.6.3
现在,更新后,在 运行 ng serve
时一切都可以在开发模式下运行。 ng build
(带或不带 --aot
标志)也运行无误。但是,ng serve --aot
或 ng serve --prod
会产生运行时错误:
我发现很难调试这个问题,因为堆栈跟踪没有指向我编写的任何文件。可能是自举问题?
此时我不是在寻找问题的完整解决方案,而是关于我可以从哪里开始寻找的建议。
到目前为止我已经尝试过:
- 正在搜索类似问题,这可能是相关的:Error when loading a Angular app with AOT build on Amazon S3
- 检查了我在
main.ts
中的引导配置是否与一些示例相匹配 - 将节点从 9.1.0 更新到 9.3.0(Vincent 建议)
- 创建了一个新的 angular-cli 项目并将 polyfills.ts 文件从新项目复制到我现有的
我一直没弄清楚真正的问题是什么,但它肯定与动画有关。当我完全禁用应用程序的动画时,错误消失了,这并不理想,但可以作为临时修复,直到我有更多时间重新编写任何模块 and/or 曾经使用动画的组件。
我的 angular 包,来自 npm,没有匹配的版本号。对齐所有库版本后,我能够同时使用 ng serve --aot
和 ng serve --prod
!
如果运行时能够在 AOT 出现之前温和地处理内部兼容性,这将是有意义的。现在我们有了 AOT,性能是关键,所以运行时故障保险已被剥离。
动画效果也很好。