ng-xi18n错误:意外的值' ServicesModule'由模块导入的“登录模块”'

时间:2016-11-23 10:13:04

标签: angular typescript internationalization

我有LoginModule

/* External Modules */
import { ServicesModule } from '@myservices/service';
import { ControlsModule } from '@mycontrols/controls';

@NgModule({
  imports: [
    CommonModule,
    ReactiveFormsModule,
    FormsModule,
    LOGIN_ROUTES,
    ServicesModule,
    ControlsModule
  ],
  declarations: [
    LoginComponent
  ],
  providers: [
    LOGIN_PROVIDERS
  ],
  exports: [
    LoginComponent
  ]
})
export class LoginModule { }

ServicesModuleControlsModule从另一个项目(私有npm存储库)导入。

AppModule看起来如下:

@NgModule({
  imports: [
    BrowserModule,
    HttpModule,
    FormsModule,
    ReactiveFormsModule,
    RouterModule,
    ServicesModule,
    ControlsModule,
    ROUTES,
    LoginModule,
    SomeAnoterLocalModule
  ],
  declarations: [
    AppComponent
  ],
  providers: [
    { provide: LocationStrategy, useClass: HashLocationStrategy }
  ],
  bootstrap: [AppComponent]
})

我发现我在ServicesModuleControlsModule都导入了LoginModuleAppModule,但是它无效。

当我运行项目时,一切正常,没问题。但是,当我运行ng-xi18n来提取翻译文本时,我收到一个错误:

Error: Unexpected value 'ServicesModule' imported by the module 'LoginModule'

我尝试从"孩子"中移除ServicesModuleControlsModule模块(LoginModule)并在AppModule中保持导入,在这种情况下,我收到一个错误,即ServicesModuleControlsModule中的标签(选择器)无法识别。

修改 ServiceModule

@NgModule({
  imports: [
    HttpModule,
    RouterModule
  ],
  providers: [
    SERVICES_PROVIDERS
  ]
})
export class ServicesModule { }

它只是服务(提供者)的集合。

1 个答案:

答案 0 :(得分:0)

问题是我没有发布metadata.json个文件。使用ngc代替tsc解决了这个问题。感谢alxhub。