我创建了Jhipster应用程序并尝试添加延迟加载模块,这会给模块找不到异常。
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import {NavbarComponent} from "./layouts/navbar/navbar.component";
export const routes: Routes = [
{ path: '', component: NavbarComponent, outlet: 'navbar'},
{ path: 'lazy', loadChildren: 'app/modules/lazy/lazy.module#LazyModule' }
];
@NgModule({
imports: [ RouterModule.forRoot(routes) ],
exports: [ RouterModule ]
})
export class AppRoutingModule {
}
答案 0 :(得分:1)
首先,您必须安装webpack插件angular-router-loader
npm install angular-router-loader --save-dev
然后在你的项目目录中打开webpack / webpack.common.js并在awesome-typescript-loader之后添加angular-router-loader,如下所示
loaders: [
'angular2-template-loader',
'awesome-typescript-loader',
'angular-router-loader' // here
]
路径应该没有应用前缀
{ path: 'lazy', loadChildren: './modules/lazy/lazy.module#LazyModule' }
答案 1 :(得分:0)
我在直角应用中使用延迟加载时遇到了类似的问题。 我将可以正常工作的应用程序与我的应用程序进行了比较,发现我的tsconfig.spec.json和tsconfig.app.json中都没有“ baseUrl”:“ ./”。 添加后,它就开始工作。
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"baseUrl": "./", **<-- this was missing**
"module": "es2015",
"types": []
},
"exclude": [
"src/test.ts",
"**/*.spec.ts"
]
}
希望这会有所帮助