Vite + React + TypeScript + Vitestの環境構築(pnpm)
メモです。
Viteの導入
$ pnpm create vite
画面表示したがってReactやTypeScriptを選ぶ。+ SWCを選んでも良い。SWCはRust製の高速なバンドラらしい。
Vitestとtesting-libraryの導入
$ pnpm add -D vitest jsdom @testing-library/react @testing-library/jest-dom @testing-library/user-event
vitest.config.tsを以下のように書く。
import { defineConfig } from "vite"; export default defineConfig({ test: { globals: true, environment: "jsdom", }, });
environmentはjsdomを使うので指定。
globalsはexpectやtestを毎回importしなくて済むように。 また、globalsをtrueにしておくと@testing-library/jest-domをimportするだけで使えるようになる。
ただし、このままだとTypeScriptがexpectやtestで怒り出すのでtsconfig.jsonの"compilerOptions"に
"types": ["vitest/globals"],
を追加しておく。
最後に、package.jsonの"scripts"に"test": "vitest run src"を追加するのを忘れずに。 watchモードがほしければ、"test:watch": "vitest"とでも書いておこう。