Vite+

Web 開発の統合ツールチェーン。Vite・Vitest・Oxlint・Oxfmt・Rolldown・tsdown・Vite Task を単一の vp コマンドで。

1 — 概要

Vite+ はローカル Web 開発の統合エントリポイント。Vite、Vitest、Oxlint、Oxfmt、Rolldown、tsdown、Vite Task をひとつのゼロコンフィグツールチェーンにまとめ、ランタイム・パッケージ管理・create / dev / check / test / build / pack / run を単一依存で提供する。プロジェクトルートの vite.config.ts から dev サーバー・ビルド・テスト・リント・フォーマット・タスクランナー・ステージドファイル用フックまでを型安全に設定できる。

vpCLI コマンド
1設定ファイル
Rust + TS実装
MITライセンス

インストール(Linux / macOS): curl -fsSL https://vite.plus | bash。Windows: irm https://viteplus.dev/install.ps1 | iex

2 — コマンド一覧
カテゴリコマンド説明
Startcreate, migrate, config, staged新規作成・移行・フック設定・ステージドファイルにリント
依存install (i), envパッケージインストール(PM 自動検出)、Node バージョン管理
Developdev, check, lint, fmt, test開発サーバー・format/lint/型チェック・テスト
Executerun, exec, dlx, cacheモノレポタスク・node_modules/.bin・npx 相当・キャッシュ管理
Buildbuild, pack, preview本番ビルド・ライブラリビルド・プレビュー
PMadd, remove, update, dedupe, outdated, list, why, info, link, pmパッケージの追加・削除・更新・重複解消・一覧・理由・メタデータ・リンク・PM への転送
3 — 統合ツールチェーン

Vite+ が統合するツールと役割。

ツール役割
Viteネイティブ ESM 開発サーバー・HMR・本番ビルド基盤
Vitestテストランナー(vp test)
Oxlintリント(vp lint)
Oxfmtフォーマット(vp fmt)
Rolldown本番ビルド(Vite + Rolldown)
tsdownライブラリビルド
Vite Taskモノレポタスク実行・キャッシュ・依存順スケジューリング(vp run)
4 — 設定

プロジェクトルートの vite.config.ts で dev / build / test / lint / fmt / run / staged を一括設定。vp migrate で .oxlintrc* や .oxfmtrc*、lint-staged 設定をこのファイルにマージできる。

import { defineConfig } from 'vite-plus';

export default defineConfig({
  plugins: [],
  test: { include: ['src/**/*.test.ts'] },
  lint: { ignorePatterns: ['dist/**'] },
  fmt: { semi: true, singleQuote: true },
  run: {
    tasks: {
      'generate:icons': { command: 'node scripts/generate-icons.js', envs: ['ICON_THEME'] },
    },
  },
  staged: { '*': 'vp check --fix' },
});
5 — モノレポ・タスク

vp run はモノレポ全体でタスクを実行し、トポロジカル順(パッケージ依存に基づく暗黙の依存)とキャッシュで効率化する。

  • vp run build -r … 再帰的にビルド(トポロジカル順がデフォルト)
  • vp run app#build web#build … 特定パッケージのタスクのみ
  • vp run build -r --no-topological … 暗黙依存なしで再帰実行

タスク依存は vite-task.jsondependsOn で明示も、パッケージの package.json 依存から暗黙にも付けられる。

コアは Rust のワークスペース(crates/)。CLI 解析・タスクグラフ・スケジューリングは vite_task 系(CLAUDE.md では vite_task とあるが crates には vite_command, vite_install 等)。パスは vite_path(AbsolutePath / RelativePath)で型安全に扱う。出力は vite_shared::output(Rust)と packages/cli の terminal ユーティリティ(TypeScript)に統一。