我正在尝试使用创建一个包
Angular library starter

一切正常,直到我添加RouterModule。

导致问题的模块

import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ClientMenuComponent } from './client-menu/client-menu.component';
import { ClientMenuItemComponent } from './client-menu-item/client-menu-item.component';
import { RouterModule, Router, Routes } from '@angular/router';


@NgModule({
  imports: [
    CommonModule,
    RouterModule.forRoot([]) <---- Error: AoT compilation failed
  ],
  declarations: [
    ClientMenuComponent,
    ClientMenuItemComponent,
  ],
  exports: [
    ClientMenuComponent,
    ClientMenuItemComponent
  ]
})
export class ClientMenuModule {
    static forRoot(): ModuleWithProviders {
        return {
            ngModule: ClientMenuModule,
            providers: []
        };
    }
    static forChild(): ModuleWithProviders  {
        return {
            ngModule: ClientMenuModule,
            providers: []
        };
    }
}


这是我得到的全部错误。

Error during template compile of 'ClientMenuModule'
Function calls are not supported in decorators but 'RouterModule' was called.

Error: AoT compilation failed


我正在使用的环境是

Angular CLI: 6.0.3
Node: 8.11.1
OS: darwin x64
Angular: 6.0.0

最佳答案

拔出函数调用:

export const MyModule = RouterModule.forRoot([]);


@NgModule({
  imports: [
    CommonModule,
    MyModule
  ],
  declarations: [
    ClientMenuComponent,
    ClientMenuItemComponent,
  ],
  exports: [
    ClientMenuComponent,
    ClientMenuItemComponent
  ]
})

07-26 01:03