Astro v0.21.0
にてVite
による新たなビルドエンジンが提供されました。
そのため、Vite
が提供しているaliasの設定をastroのプロジェクトでも行うことができます。
ReactやVueのプロジェクトにおける Vite
での alias
の設定方法と何も変わりません。たったの2ステップです。
astro.config.mjs
のVite
の項目でalias
を設定- エディタのサポートを有効にするため
tsconfig.json
のpaths
を設定
config設定
src
ディレクトリを@
で参照できるように設定してみます。
1:
astro.config.mjs
のvite
配下にて以下のように記述します。
import path from 'path';
/** @type {import('astro').AstroUserConfig} */
export default {
vite: {
resolve: {
alias: {
'@/*': path.join(
path.dirname(new URL(import.meta.url).pathname),
'./src'
),
},
},
},
};
path.dirname(new URL(import.meta.url).pathname)
というちょっと見慣れない記法がありますが、簡単に言うとESModules
における__dirname
に当たるものです。astro.config.mjs
の拡張子はデフォルトでmjs
です。
ESModules
ではグローバル変数__dirname
が使えなくなるため、このように書いています。
2:
もしもVSCode
を使っているならtsconfig.json
のpaths
にalias
を定義してインテリセンスを有効にしましょう。
{
"compilerOptions": {
......
"paths": {
"@/*": ["./src/*"]
}
},
}
結果
以上の設定を終えると次のようにコンポーネントのimportができるようになります。
import { Button } from '@/components/Button.astro'
// src
// |- components
// | - Button.astro <- you can get it!!