我见过很多 AoT 编译由于某种原因而失败或产生奇怪的运行时错误的情况。我有相反的问题:我的应用程序在非 AoT 模式下失败并出现错误:
无法解析 ConfirmRemoveService (?) 的所有参数
无论我的目标是开发还是生产,无论我使用的是环境dev
还是prod
环境,都会发生这种情况。例如,只要我还明确打开 AoT,纯开发构建就会成功:
ng serve -dev --aot
上面的?
错误消息中MatDialog
的 Angular Material2 库中的 type 。(这ConfirmRemoveService
是组件用来建立模态对话框的服务。)
此问题可能与升级到该库的 beta 11 版本有关,也可能无关。它可能与我从一个MaterialModule
直接从库中直接导入的更改(因为MaterialModule
现在已被删除)更改为我自己的模块,该模块导入单个 Angular Material2 模块,例如MatDialogModule
;然后我在必要时导入该模块。但是,这些都不会阻止应用程序在 AoT 模式下运行。它只是在非 AoT 模式下才会出现错误。
有谁知道这种问题只能在非 AoT 场景中发生的场景,为什么?