Angular2 - 分组并有选择地添加模块声明

时间:2016-11-22 01:06:40

标签: angular declaration angular-cli

我们正在使用angular2和angular-cli,我们的应用程序变得相当大,并且在declarations:文件中有大量app.module.ts

@NgModule({
  declarations: [
    GameComponent1,
    GameComponent2,
    GameComponent3,
    StatsComponent1,
    StatsComponent2,
    StatsComponent3,
    AboutPageComponent1,
    AboutPageComponent2,
    AboutPageComponent3,
    AboutPageComponent4,
  ],...

首先,有没有办法对相关的组件声明进行分组,如下所示:

@NgModule({
  declarations: [
    GameComponentsGroup,
    StatsComponentsGroup,
    AboutPageComponentsGroup,
  ],...

然后,可以选择性地打开和关闭组件,使其不被包含在构建中,适用于不同的环境。

if(environment.envName == "developmentWithStats")
  appmodule add StatsComponentsGroup

目标是允许不同的功能包含在不同的版本中。

我知道我在这里缺少一些关键知识,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

  

首先,有没有办法对相关的组件声明进行分组,如下所示:

您可以将它们分组到不同的模块

@NgModule({
  declarations: [ Game1Component, Game2Component ],
  exports: [ Game1Component, Game2Component ]
})
class GameModule {}

@NgModule({
  imports: [ GameModule ]
})
class ModuleThatUsesGameModule {}
  

然后,可以选择性地打开和关闭组件,使其不被包含在构建中,适用于不同的环境。

您可以执行类似

的操作
const declarations = [
  CoreComponent
];

if(environment.envName == "developmentWithStats") {
  declarations.push(SomeComponent);
}

@NgModule({
  declarations: declarations
})
相关问题