gpt4 book ai didi

angular - 延迟加载在 prod 构建 Angular 8 上被破坏

转载 作者:行者123 更新时间:2023-12-04 13:00:53 25 4
gpt4 key购买 nike

我试图让我的懒加载路线在生产中工作。目前,在开发模式下一切正常,但是当我切换到 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 {
}

懒加载.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

我得到的原始错误是 Error: Runtime compiler is not loaded with production configuration当我使用我们的自定义 webpack 构建时。从那以后我改用 CLI,现在错误已经改变。我不确定这些信息是否有帮助,但我认为信息越多越好。

我试过清理 node_modules , 我试过 npm install acorn ,我已经尝试删除所有旧的 webpack 插件和加载器来尝试消除冲突的 webpack 版本,我已经尝试了用于延迟加载的旧 Angular v7 字符串语法,以及许多其他的东西。

更新 我只是尝试创建一个全新的 Angular 应用程序并重现错误: Error: Runtime compiler is not loaded

最佳答案

所以下载后Angular sample lazy loading project并使用在 package.json 中找到的依赖项在那个项目中,我能够修复这个错误。我已经降级了我所有的 @angular/包裹到 ^8.0.0并设置 "@angular-devkit/build-angular": "0.800.0"一旦我这样做了,我的懒加载又开始工作了。我认为问题来自 @angular-devkit/build-angular包的最新版本,但我不能确定。

我希望这对某人有所帮助,如果其他人遇到困难,我很乐意发布任何其他支持代码!

关于angular - 延迟加载在 prod 构建 Angular 8 上被破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57207896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com