我想找出下面错误的原因。
app/src/app.module.ts(13,33): error TS2307: Cannot find module 'src/components/test/test.module
我使用Angular2 RC5并创建了一个功能模块并将其导入app.module.ts
文件。我使用延迟加载模块与路由器。
app.module.ts
看起来像这样
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { routing } from './app.routes';
/* App Root */
import { AppComponent } from './app.component';
/* Feature module */
import { TestModule } from 'src/components/test/test.module';
@NgModule({
imports: [ BrowserModule, routing ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ],
providers: []
})
export class AppModule { }
test.module.ts
看起来像这样
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TestComponent } from './test.component';
import { routing } from './test.routes';
@NgModule({
imports: [ CommonModule, routing ],
declarations: [ TestComponent ],
providers: []
})
export default class TestModule { }
app.routes.ts
看起来像
import { Routes, RouterModule } from '@angular/router';
export const routes: Routes = [
{
path: '',
redirectTo: '/test',
pathMatch: 'full'
},
{
path: 'test',
loadChildren: 'src/components/test/test.module'
}
];
export const routing = RouterModule.forRoot(routes);
test.routes.ts
看起来像
import { Routes, RouterModule } from '@angular/router';
import { TestComponent } from './test.component';
const routes: Routes = [
{ path: '',
component: TestComponent }
];
export const routing = RouterModule.forChild(routes);
当我尝试用default
关键字编译test.module.ts
文件时,出现上述错误。如果我删除它,错误就消失了。但是,当然,在这种情况下,我将无法对特性模块使用延迟加载。
有人遇到过这个吗?
我看到你的代码中有多个错误。你在AppModule中导入了错误的模块。您的test.module.ts
的导出类名称是TestModule
,但您在AppModule
中导入的是DashboardModule
。
代替:
import { DashboardModule } from 'src/components/test/test.module';
你应该导入:
import { TestModule } from 'src/components/test/test.module';
当然,您需要将TestModule
添加到AppModule
导入中。