Typescript编译错误TS2307:无法找到angular2 rc5和ngModule的模块

Typescript compilation error TS2307: Cannot find module with angular2 rc5 and ngModule

本文关键字:rc5 angular2 ngModule 模块 错误 编译 TS2307 Typescript      更新时间:2023-09-26

我想找出下面错误的原因。

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导入中。