打字稿编译错误TS2307:找不到带有angular2 rc5和ngModule的模块

时间:2016-08-24 08:29:36

标签: javascript angular typescript module lazy-loading

我试图找出导致以下错误的原因。

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);

当我尝试使用test.module.ts关键字编译default文件时,会出现上述错误。如果我删除它,错误消失。但当然,在这种情况下,我无法使用延迟加载功能模块。

有没有人遇到过这个?

1 个答案:

答案 0 :(得分:0)

我在您的代码中看到多个错误。 您正在AppModule中导入错误的模块。 您的导出类名称test.module.tsTestModule,但您要导入DashboardModule中的AppModule

而不是:

import { DashboardModule } from 'src/components/test/test.module';

您应该导入:

import { TestModule } from 'src/components/test/test.module';

当然,您需要在TestModule次导入中添加AppModule