Astroプロジェクトでimportエイリアスを使う
問題
Astroプロジェクトでは、import
で相対パスを指定する必要がある。
そのため、ファイルを移動したときは、import
のパスも修正する必要がある。
例えば、ファイル構成が以下のようになっているとする。
このとき、my-page.astro
からMyComponent.astro
をimportするには以下のように書く。
ここで、my-page.astro
をsrc/pages/
からsrc/pages/sub-pages/
に移動した場合、import
のパスも修正する必要がある。
src/pages/sub-pages/my-page.astro
---
import MyComponent from "../../components/MyComponent.astro";
// ^^^^^^ この部分を修正する必要がある。
---
ファイルを移動するたびにimport
のパスを修正するのは手間がかかるので、import
でプロジェクトルートを基準にしたパスを指定したい。
対応方法
tsconfig.json
(またはjsconfig.json
)に以下の設定を追加する。
tsconfig.json
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@components/*": ["src/components/*"],
// 他のエイリアスも追加したい場合はここに追加する。
"@layouts/*": ["src/layouts/*"],
...
}
}
}
この設定を追加することで、import
で@components
を使って、プロジェクトルートを基準にしたパスを指定できるようになる。