本文へスキップ

Vitest の設定ファイルの管理

Vite を使用しており、vite.config ファイルがある場合、Vitest はそのファイルを読み取ってプラグインと Vite アプリとしてのセットアップと照合します。テストまたはメインアプリの構成を変更するか、Vite に依存せずに作成したい場合は、次のいずれかの方法があります。

  • 優先順位が高く、vite.config.ts からの構成を上書きする vitest.config.ts を作成します (Vitest は従来のすべての JS および TS 拡張子をサポートしますが、json はサポートしていません)。つまり、vite.config のすべてのオプションは無視されます
  • CLI に --config オプションを渡します (例: vitest --config ./path/to/vitest.config.ts)
  • process.env.VITEST または defineConfigmode プロパティを使用します (--mode で上書きされていない場合は test / benchmark に設定されます) して、vite.config.ts の異なる構成を条件付きで適用します

vitest 自体を設定するには、Vite の設定に test プロパティを追加します。また、vite 自体から defineConfig をインポートする場合は、設定ファイルの先頭に トリプルスラッシュコマンド を使用して Vitest 型への参照を追加する必要があります。

vite から defineConfig を使用するには、次の手順に従ってください。

ts
/// <reference types="vitest" />
import {  } from 'vite'

export default ({
  : {
    // ... Specify options here.
  },
})

vitest/config から defineConfig を使用するには、次の手順に従ってください。

ts
import {  } from 'vitest/config'

export default ({
  : {
    // ... Specify options here.
  },
})

必要に応じて拡張するために、Vitest の既定のオプションを取得できます。

ts
import { configDefaults, defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    exclude: [...configDefaults.exclude, 'packages/template/*'],
  },
})

個別の vitest.config.js を使用する場合は、必要に応じて別の設定ファイルから Vite のオプションを拡張することもできます。

ts
import { defineConfig, mergeConfig } from 'vitest/config'
import viteConfig from './vite.config'

export default mergeConfig(viteConfig, defineConfig({
  test: {
    exclude: ['packages/template/*'],
  },
}))

Vite の設定が関数の形で定義されている場合は、次のように設定を定義できます。

ts
import { defineConfig, mergeConfig } from 'vitest/config'
import viteConfig from './vite.config'

export default defineConfig(configEnv => mergeConfig(
  viteConfig(configEnv),
  defineConfig({
    test: {
      exclude: ['packages/template/*'],
    },
  })
))

MIT ライセンスに基づいてリリースされています。