我打算访问在自定义扩展库中定义的一些延迟加载的路由。一切正常,直到我想构建一个生产程序包(AOT处于活动状态)。构建已通过,但是当我尝试到达某个路线时,在浏览器的控制台中收到此错误:
Uncaught Error: Uncaught (in promise): Error: Runtime compiler is not loaded
Error: Runtime compiler is not loaded
at e.Jr (main.41ff3398f5c3f189c836.js:1)
at t.project (main.41ff3398f5c3f189c836.js:1)
at t._tryNext (main.41ff3398f5c3f189c836.js:1)
...
[我假设它与loadChildren
属性有关,当我构建库时,ng-packgr
因新的Angular 8延迟加载合成器,箭头功能而失败(这是一个已知问题https://github.com/ng-packagr/ng-packagr/issues/1285。]]
惰性路由在自定义库中定义如下:
export function getRouteModule() { return RouteModule; } export const MAIN_APP_ROUTES: Routes = [ { path: 'route', loadChildren: getRouteModule }, ... ];
然后在我的消费者项目中:
@NgModule({ imports: [ BrowserModule, LibraryModule, RouterModule.forRoot(MAIN_APP_ROUTES, {useHash: true}) ], declarations: [ AppComponent ], bootstrap: [AppComponent] }) export class AppModule { }
所以我尝试了多个合成器,较旧的结合了Angular库的合成器应该很棒:
{ path: 'route', loadChildren: '@MyLib/route/route.module#RouteModule' }, ...
但是它不起作用。
任何想法?
我打算访问在自定义扩展库中定义的一些延迟加载的路由。一切正常,直到我想构建一个生产程序包(AOT处于活动状态)。构建通过了,但是当我...