@NgModuleへ指定するコンポーネントの依存関係を自動解決する方法はありますか?

Atomic Design でプロダクトを開発しています, そのため、Componentの量が多いです

  1. AComponent が BComponent を利用している
  2. BComponent が CComponent を利用している
  3. CComponent が…

という依存関係の際、依存関係を手で全て既述するのは大変です.

@NgModule({
  declarations: [
    AComponent,
    BComponent,
    CComponent,
    DComponent,
    ... // 大量に指定する必要がある
  ],
})
export class HogeModule {}

下記の様な形で依存コンポーネントを解決する事は出来たのですが
AOT build だと Function call はエラーになってしまうので現状は諦めています

@NgModule({
  declarations: [
    // AComponent > BComponent > ... と再帰的に依存Componentを取得する Function
    ...AComponent.getDependency()
  ],
})
export class HogeModule {}

何か他に良い方法はあるでしょうか?
他のプロダクトにおいては @NgModule へのComponent指定はどの様に対応されていますか?
よろしくお願いいたします

Angular CLIの ng generate コマンドを使ってコンポーネントを生成すれば手で declarations に追加する必要はありませんよ。

また、AComponentがコンポーネントの依存関係で頂点にあるのなら、 AComponentをexportするためのNgModuleを分けて、他のNgModuleからはそれをimportsに追加するように分離するとどうでしょうか。

1 Like

ご返信ありがとうございます

Module単位に分割してのComponent利用は
これまで考えていなかった為、検討したいと思います