我想延迟加载我的组件。但有一个我无法解决的错误。
错误是:
core.js:15724错误错误:未捕获(承诺中):错误:找不到 模块'app / invoice-builder / invoice-builder.module'错误:找不到 模块'app / invoice-builder / invoice-builder.module'
app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{
path: 'invoice-builder',
loadChildren : 'app/invoice-builder/invoice-builder.module#InvoiceBuilderModule'
},
{
path: '**',
redirectTo: 'invoice-builder'
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import { from } from 'rxjs';
import { MaterialModule } from './shared/material.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
MaterialModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
我不明白这里发生了什么。我尝试两次使用重新启动项目
npm start
,但是没有用。任何帮助将不胜感激。
答案 0 :(得分:2)
问题可能是由于您定义路径的方式引起的。
摘自Lazy Loading Modules上的官方角度文档
请注意,延迟加载语法使用loadChildren,后跟一个字符串,该字符串是模块的相对路径,井号或#,以及模块的类名。
尝试将您的路径更新为:
loadChildren : './app/invoice-builder/invoice-builder.module#InvoiceBuilderModule'
或者根据您的文件结构,您可能不需要./app
,在这种情况下您可以尝试
loadChildren : './invoice-builder/invoice-builder.module#InvoiceBuilderModule'
答案 1 :(得分:2)
在使用 Angular 9 时,我遇到了类似的问题,并通过使用found in docs:
的语法对其进行了修复const routes: Routes = [
{
path: 'customers',
loadChildren: () => import('./customers/customers.module').then(m => m.CustomersModule)
},
{
path: 'orders',
loadChildren: () => import('./orders/orders.module').then(m => m.OrdersModule)
}
];
答案 2 :(得分:0)
更新LoadChieldren路径,如
/dev/pts
因为invoice-builder文件夹位于app文件夹内。 而且app-routing.module.ts也位于同一目录中,因此请更新模块的路径。