VSCodeにViteで設定したresolve aliasを認識させる

Laravel × Reactでの開発においてcomponentをimportする際に、相対パスを書く手間が省くために
エイリアスを設定することがあるかと思います。
その際に、コンパイルは通るのにVScode上で以下のメッセージが出て真っ赤になってしまいはまったので備忘録を残します。

モジュール XXX またはそれに対応する型宣言が見つかりません。ts(2307)
//or
`TS2307: Cannot find module XXX or its corresponding type declarations.`

環境

  • Laravel
  • Vite
  • React
  • TypeScript

vite-tsconfig-paths

まずvite-tsconfig-pathsというプラグインをインストールしました。
これを使えばvite.config.ts に alias の設定を書く必要がなくなるらしいのですが、私の環境ではなぜかaliasの設定を省略するとエラーが…
しかし、このプラグインがないとVSCodeのエラーとパスエイリアスの設定の両方を解決できなかったのでそのまま活用….

npm i -D vite-tsconfig-paths

https://github.com/aleclarson/vite-tsconfig-paths

vite.config.ts

import { defineConfig } from "vite";
import laravel from "laravel-vite-plugin";
import react from "@vitejs/plugin-react";
import tsconfigPaths from "vite-tsconfig-paths"; //vite-tsconfig-paths

export default defineConfig({
    server: {
        hmr: {
            host: "localhost",
        },
    },
    plugins: [
        laravel({
            input: ["resources/css/app.css", "resources/ts/index.tsx"],
            refresh: true,
        }),
        react(),
        tsconfigPaths(), //vite-tsconfig-paths
    ],
    resolve: {
        alias: {
            "@": "resources/ts",
        },
    },
});

ここでaliasを登録するとコンパイルは通るが、VSCode上ではアラートがでる。
なのでtsconfig.jsonでbaseUrlとpathsを設定する必要があります。

tsconfig.json

tsconfig.jsonで以下を設定します。

"baseUrl": "." ,
"paths": {
    "@/*": ["resources/ts/*"]
}

これでなんとかVSCodeのエラーがなくなりました!!

コメントを残す

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。