T-CREATOR

NestJSで`@/`を用いた絶対パスインポートを実現するためのやり方を紹介

NestJSで`@/`を用いた絶対パスインポートを実現するためのやり方を紹介

NestJSで@/を用いた絶対パスインポートを実現する設定についてご紹介いたします。

この設定を行うことで、モジュールやサービスのインポート時に../../../といった煩雑な相対パスを使用せず、@/modules/sample.serviceのようにスッキリとした記述が可能となります。

tsconfigのパスエイリアス設定

まずはTypeScriptの設定ファイルであるtsconfig.jsonを編集いたします。

json{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@/*": ["src/*"]
    }
  }
}

上記の設定により、@/src/ディレクトリを指すようになります。

tsconfig.build.jsonにも反映

NestJSではtsconfig.build.jsonを使用してビルドされるため、こちらにも同様のパス設定が必要です。

json{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "paths": {
      "@/*": ["src/*"]
    }
  }
}

extendsによって共通設定を引き継いでいますが、pathsは上書きされるため、明示的に記述する必要がございます。

モジュールのインポート例

設定後は以下のように簡潔なインポートが可能になります。

tsimport { SampleService } from '@/modules/sample.service';

これにより、コードの可読性が格段に向上し、大規模プロジェクトでも管理しやすくなります。

yarn start での確認

NestJSの開発サーバーを起動して、正しく動作しているかをご確認ください。

bashyarn start:dev

エラーが出ずにインポートが解決されていれば、設定は完了しております。

まとめ

NestJSで@/を用いたパス解決を行うには、以下の2点が重要です。

対応項目説明
tsconfig.json"baseUrl""paths"の設定を追加する
tsconfig.build.jsonビルド時のために同様の"paths"設定が必要

パスエイリアスを活用することで、開発効率と保守性が大幅に向上いたします。

記事Article

もっと見る