2016-08-24 3 views
0

Я пытаюсь выяснить причину следующей ошибки.Ошибка составления машинописной записи 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); 

Ошибка выше при попытке скомпилировать файл test.module.ts с ключевым словом default. Если я удалю его, ошибка исчезнет. но, конечно, в этом случае я не смогу использовать ленивую загрузку для функционального модуля.

Кто-нибудь сталкивался с этим?

ответ

0

Я вижу несколько ошибок в вашем коде. Вы импортируете неправильный модуль в свой AppModule. Ваше имя класса экспорта test.module.ts является TestModule, но вы импортируете DashboardModule в свой AppModule.

Вместо:

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

Вы должны импортировать:

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

И, конечно же, вам нужно добавить TestModule к вашим AppModule импорта.

+0

ах, мой плохой белый код написания выше. спасибо за указание. Я импортирую import {TestModule} из 'src/components/test/test.module'; Кроме того, для ленивой загрузки TestModule нам не нужно добавлять это в AppModule. не так ли? –

+0

Добавьте его для импорта: '@NgModule ({ импорта: [CommonModule, routing, TestModule] })' –

+0

Я пытаюсь реализовать https://angular.io/docs/ts/latest/guide/ngmodule .html #! # lazy-load Я должен добавить больше файлов, о которых идет речь, чтобы было ясно. –