本文へ移動
cccskills
無料GitHub で公開

setup-vitest

Set up Vitest for a TypeScript project, or migrate from Jest. Use for faster test execution, native ESM/TypeScript support, and Jest-compatible API. Covers config, dependency swaps, and test file updates.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md2.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Set Up Vitest

Goal

Add Vitest for fast test execution with native ESM and TypeScript support. If migrating from Jest, replace Jest + ts-jest with minimal code changes.

Why

  • Native ESM support (no ts-jest transform overhead)
  • Native TypeScript support (no configuration needed)
  • 2-5x faster test execution for ESM TypeScript projects
  • Jest-compatible API (minimal code changes when migrating)

Steps

1. Install Vitest

pnpm add -D vitest

2. Create vitest.config.ts

import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    globals: true,
    include: ['src/**/*.test.ts'],
  },
})

3. Update package.json Scripts

{
  "scripts": {
    "test": "vitest run",
    "test:watch": "vitest"
  }
}

4. Remove Jest (if migrating)

pnpm remove jest ts-jest @types/jest

Also delete jest.config.* if it exists.

5. Update Test Files (if migrating from Jest)

With globals: true, most Jest tests work unchanged. Key differences:

Mock changes (find and replace):

// jest.fn → vi.fn
// jest.mock → vi.mock
// jest.spyOn → vi.spyOn
// jest.clearAllMocks → vi.clearAllMocks
// jest.resetAllMocks → vi.resetAllMocks
// jest.restoreAllMocks → vi.restoreAllMocks
// jest.useFakeTimers → vi.useFakeTimers

Imports (if not using globals):

import { describe, test, expect, vi, beforeEach, afterEach } from 'vitest'

6. TypeScript Config

Add vitest types if using globals:

{
  "compilerOptions": {
    "types": ["vitest/globals"]
  }
}

Or create a separate tsconfig.test.json that extends the main one.

7. Verify

pnpm test           # All tests pass
pnpm test:watch     # Watch mode works

Gotchas

  • Vitest uses esbuild for transforms (fast but no type-checking during tests — use tsc --noEmit separately)
  • Snapshot files are compatible (.snap extension, same as Jest)
  • If Jest config uses moduleNameMapper, use resolve.alias in vitest config instead

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Add --json flag to CLI commands for machine-readable output on stdout. Generic pattern for any CLI tool, enabling piping to jq and CI/CD integration while keeping human-readable output on stderr.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Add shell completion support via a 'completion' subcommand for bash, zsh, and fish. Generic pattern for any Commander.js CLI, with static and dynamic completion examples.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Add zod schema validation for CLI options and YAML/JSON config files. Generic pattern for runtime validation with type-safe parsing and clear error messages in any Commander.js CLI.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Set up @changesets/cli for semantic versioning, CHANGELOG generation, and npm publishing in a monorepo or single package. Covers init, config, contributor workflow, GitHub Actions release automation, and npm provenance.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Add automatic CI/CD environment detection using ci-info package. Generic pattern for any CLI tool that needs to adapt behavior (prompts, output, integrations) based on whether it's running in CI.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Polish CLI user experience with @clack/prompts for interactive flows, update-notifier for version awareness, and enhanced Commander.js help text with examples and colors. Generic patterns for any Node.js CLI.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

krafteq のスキルをすべて見る

このスキルの問題を報告する