2016-08-24 98 views
0

我想找出以下錯誤的原因。Typescript編譯錯誤TS2307:無法找到模塊與angular2 rc5和ngModule

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文件時出現上述錯誤。如果我刪除它,錯誤消失。但當然,在這種情況下,我將無法使用延遲加載功能模塊。

有沒有人遇到過這個?

回答

0

我在代碼中看到多個錯誤。 您正在AppModule中導入錯誤的模塊。 您的出口類名稱test.module.tsTestModule,但您在AppModule中正在導入DashboardModule

相反的:

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

您應該導入:

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

,當然,你需要添加TestModuleAppModule進口。

+0

啊,我上面寫的白色代碼不好的例子。感謝指點。我從'src/components/test/test.module'導入導入{TestModule}; 除此之外,對於TestModule的延遲加載,我們不需要在AppModule中添加它。不是嗎? –

+0

將其添加到導入中:'@NgModule({CommonModule,routing,TestModule] }' –

+0

我試圖實現https://angular.io/docs/ts/latest/guide/ngmodule .html#!#懶惰加載 我應該添加更多有問題的文件來說清楚。 –

相關問題