我正在尝试让我的懒加载路由在生产环境中工作。目前,在开发模式下一切都正常,但是当我切换到AOT模式时,会出现以下错误:TypeError: Cannot read property 'routeConfig' of undefined
我已经在一个极小的测试项目中复制了这个错误,并且使用了最少量的代码。我的懒加载模块看起来像这样:
const routes: Routes = [
{
path: 'home',
component: HomeComponent
},
{
path: 'lazy',
loadChildren: () => import('./lazy-loaded-component/lazy-loaded.module').then(m => m.LazyLoadedModule)
},
{
path: '',
redirectTo: 'home',
pathMatch: 'full'
}
];
@NgModule({
imports: [
BrowserModule,
HttpClientModule,
RouterModule.forRoot(routes, {useHash: true}),
FormsModule,
],
declarations: [
AppComponent,
HomeComponent
],
bootstrap: [AppComponent]
})
export class AppModule {
}
lazy-loaded.module:
import {NgModule} from "@angular/core";
import {CommonModule} from "@angular/common";
import {RouterModule, Routes} from "@angular/router";
import {LazyLoadedComponent} from "./lazy-loaded.component";
const routes: Routes = [
{
path: '',
component: LazyLoadedComponent
}
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(routes)
],
exports: [RouterModule],
declarations: [LazyLoadedComponent]
})
export class LazyLoadedModule {
}
我的版本看起来像这样:
Angular CLI: 8.1.2
Node: 10.16.0
OS: win32 x64
Angular: 8.1.2
... animations, cli, common, compiler, core, elements, forms
... language-service, platform-browser, platform-browser-dynamic
... router, upgrade
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.801.2
@angular-devkit/build-angular 0.801.2
@angular-devkit/build-optimizer 0.8.9
@angular-devkit/build-webpack 0.801.2
@angular-devkit/core 8.1.2
@angular-devkit/schematics 8.1.2
@angular/compiler-cli 8.2.0-next.2
@ngtools/webpack 6.2.9
@schematics/angular 8.1.2
@schematics/update 0.801.2
rxjs 6.5.2
typescript 3.4.5
webpack 4.35.2
我最初遇到的错误是在使用自定义webpack构建时出现了
Error: Runtime compiler is not loaded with production configuration
。我已经改用CLI,现在错误已经改变。我不确定这些信息是否有帮助,但我认为提供更多信息会更好。我尝试过清除
node_modules
,尝试过npm install acorn
,尝试过删除所有旧的webpack插件和加载器以消除版本冲突,尝试过使用旧的Angular v7字符串语法进行懒加载,还做了很多其他事情。
更新 我刚刚尝试创建一个全新的Angular应用程序并重现了错误:Error: Runtime compiler is not loaded
。
useHash
属性并不能解决这个问题。 - Justin