【发布时间】:2019-05-21 17:24:59
【问题描述】:
Angular 8(现在任何一天到期)不推荐使用字符串格式来路由 LoadChildren,具体如下:
type LoadChildren = LoadChildrenCallback | DeprecatedLoadChildren; 来自https://next.angular.io/api/router/LoadChildren
在使用 JIT 的 DEV 中一切正常,但在使用 AOT 的 --prod 中延迟加载模块在尝试路由到该模块时会引发以下错误:
ERROR Error: Uncaught (in promise): Error: Runtime compiler is not loaded
我现在可以继续使用字符串格式并忽略弃用警告,但最好绕过弃用警告并拥有正常运行的代码。
工作字符串方法:
{
path: 'admin',
loadChildren: './admin/admin.module#AdminModule'
},
失败的函数方法:
{
path: 'admin',
loadChildren: ():Promise<typeof AdminModule> =>
import('./admin/admin.module').then(m => m.AdminModule)
},
我在最近的几个 beta 和 rc 中遇到过这个问题。
还有其他人找到解决此问题的方法吗?
【问题讨论】:
-
好博文;感谢您的参考。从那篇文章看来,似乎别无选择,只能忍受弃用警告,直到可以切换到常春藤,这可能需要几个月的时间。大约一个月前我尝试了 Ivy,它肯定会减慢开发迭代,所以在我看来,它不值得开启。
标签: angular angular-cli angular-router