😜

[Nestjs]Moduleをグローバルでインポートする2つの方法

2025/02/11に公開

結論

NestJsでインポートを行うには2つの方法がある。

  1. @Grobal アノテーションを使用する

Moduleで以下の通り記述するとグローバルインポートをすることができる。

import { Module, Global } from '@nestjs/common';

@Global() // これを追加してグローバルモジュールにする
@Module({
...
...
..
.
  1. Moduleのimportsの中のglobalオプションを使用し、グローバルインポートとして登録する
import { AuthModule } from './modules/auth/auth.module';

@Global()
@Module({
  imports: [
	  // global: true でグローバルインポートとして登録される
    { global: true, module: AuthModule },
  ],
})
export class AppModule {}

どっちを使った方がいいのか

個人的には2のAppModuleがいいと思う。

ルートのapp.module.ts での中でアプリケーション内のModuleをインポートしていると思うので、その中でGlobalImportしておいた方がなにがGlobalImportなのかを一元管理できるのでいいと思った。

参考

https://docs.nestjs.com/modules#global-modules

Discussion