Vite@5以降 + TypeScriptでパスエイリアスを設定する方法
Vite@5以降でエイリアスを設定するために必要な手順は以下のとおりです。
- viteがビルドできるように、vite.config.ts に
resolve.alias
を追加する - エディタでインポートエラーにならないように、 tsconfig.app.json に
paths
とbaseUrl
を追加する - ”@/” をつけてインポートする
1. vite.config.ts に resolve.alias
を追加する
import { defineConfig } from "vite";import react from "@vitejs/plugin-react-swc";import tailwindcss from "@tailwindcss/vite";import path from "path";
// https://vite.dev/config/export default defineConfig({ resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, plugins: [tailwindcss(), react()],});
2. tsconfig.app.json に paths
と baseUrl
を追加する
viteのテンプレートバージョン5以降では、tsconfig.json ではなく、tsconfig.app.json を見ています。そのため、tsconfig.jsonにエイリアスを追加してもインポートエラーが解消されません。
{ "compilerOptions": { /* alias */ "baseUrl": ".", "paths": { "@*": ["./src/*"] }, "target": "ES2020", ... }
3. インポート時に ’@/’ を使う
”@” だけではパスが解決できません。以下のように ”@/” をつけてインポートします。
import { Hoge } from '@/components/Hoge';
ただし、設定で”@“だけでなく、“@components” を追加するとスラッシュは不要になります。