
Nuxt.jsでTypeScriptを使用した際、Webpackでよくやるimportエイリアスを適用したかったのでやってみました。
TypeScriptコンパイル時のエイリアスルールを設定
先ずはコンパイル時に怒られないよう tsconfig.ts にエイリアスを設定します。
tsconfig.ts
{ "compilerOptions": { .... "baseUrl": ".", "paths": { "@/*": ["./*"], "~/*": ["./*"] }, .... } }
baseUrl はimportの起点となるディレクトリです。
この場合 tsconfig.ts が配置されたところがルートディレクトリとなります。
paths に設定したいエイリアスを記述していきます。
nuxt.config.ts
TypeScript側では静的チェックを行うのみで、実際のコンパイル時にimportを解決してくれません。
なのでimport解決そのものはWebPackの設定で行います。
Nuxt.jsにおけるWebpackの設定は webpack.config.js(ts) ではなく nuxt.config.js(ts) で行います。
const path = require("path"); export default { .... resolve: { .... alias: { "@": path.resolve(__dirname), "~": path.resolve(__dirname) } .... }, .... };
上記のような alias プロパティにパスを設定していきます。
これでOK。TypeScriptコンパイルが通り、importを実行できます。