目次
インポートのエイリアス化とは
階層が深くなっていくと、importする際に「../../../../Hoge
」のような「../
」などの相対パスが複数記載されることがあります。
共通コンポーネントなどは特に複数箇所からの利用が行われるため、上記のようなパスをエイリアスを設定することで、「@Hoge」のようにまとめる事ができます。
WebPackのエイリアス定義
以下のようなディレクトリ構造の前提で記載します。
src ┣ index.ts ┗components ┣ file.ts ┗ dir ┗ fileee.ts
「webpack.config.js
」を以下のようにエイリアスの定義を行います。
module.exports = () => { return { resolve: { alias: { "@dir": path.join(__dirname, "src/components/dir/"), "@file": path.join(__dirname, "src/components/file.ts"), }, extensions: [".json", ".js", ".jsx", ".ts", ".tsx"], }, ~~~~~WebPackの定義~~~~~ }; };
TypeScript用のエイリアス定義
「tsconfig.json
」を以下のようにエイリアスの定義を行います。
{ "compilerOptions": { ~~~~~tsconfig.jsonの他の定義~~~~~ "baseUrl": "./src", "paths": { "@dir/*": ["components/dir/*"], "@file": ["components/file.ts"] } }, }
インポート
ディレクトリのエイリアス
「src/index.ts
」から、エイリアスを使わない「dir」配下の「fileee.ts」をインポートする方法
import fileee from './components/dir/fileee.ts';
「src/index.ts
」から、エイリアスを使った「dir」配下の「fileee.ts」をインポートする方法
import fileee from '@dir/fileee.ts';
ファイルのエイリアス
「src/index.ts
」から、エイリアスを使わない「file.ts」をインポートする方法
import file from './components/file.ts';
「src/index.ts
」から、エイリアスを使った「file.ts」をインポートする方法
import file from '@file';