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
もっと見る- article
React Suspenseを使う際に避けたいアンチパターン5選と解決策について紹介
- article
React SuspenseとServer Componentsの融合:クライアントとサーバの役割分担
- article
Suspense + useTransitionで滑らかなUXを実現するやり方を紹介
- article
React Suspenseでデータフェッチ!fetchでは動かない理由と正しい書き方について紹介
- article
React 18のSuspense完全対応ガイド:並列レンダリング時代の新常識
- article
Suspense × lazyで始めるコード分割:Reactアプリの初歩的最適化