くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

モノレポでもVSCodeでVitestできるようにする

VSCodeのVitest拡張機能をつかっているけど、
monorepoだとうまく動かなくて、
いろいろ調べたときの備忘録(*´ω`*)

ちゃんとドキュメントに書いてあった(*´ω`*)

vitest.workspace.ts

Vitest自体がmonorepoに対応しているようで、
ワークスペースのルートにvitest.workspace.tsを配置すればOK

export default [
  // 配下のvitest.config.tsを探す
  'packages/*',
  // ファイル名を変更している場合はこっち
  'packages/*/vitest.config.{e2e,unit}.ts',
]

共通の設定

各パッケージで共通の設定をしたい場合には、
importしてmargeConfigを使う感じっぽい

// packages/a/vitest.config.ts
import { defineProject, mergeConfig } from 'vitest/config'
import configShared from '../vitest.shared.js'

export default mergeConfig(
  configShared,
  defineProject({
    test: {
      environment: 'jsdom',
    }
  })
)

以上!! 便利。。(*´ω`*)