編集

Vite 8.0 リリース、Rolldown を単一バンドラーとして統合

Vite 8.0 の安定版リリース。従来は開発時の高速変換に esbuild、本番のバンドルと最適化に Rollup を併用していたが、Rust 製の Rolldown を単一のバンドラーとして採用する構成への移行が完了。公式ではベンチマークで Rollup 比約 10〜30 倍の速度をうたい、既存の Rollup 互換プラグイン API を維持するため多くの Vite プラグインがそのまま動作する想定。esbuild と Rollup を二系統で抱えていた際の変換パイプラインのずれや接着コードの肥大化を、一つのバンドラーに集約して抑える方向性。

エコシステム面では、増え続けるプラグインを探しやすくする registry.vite.dev を新設。Vite・Rolldown・Rollup 向けのエントリを npm から日次で取り込む検索用ディレクトリ。

#主要な変更点

  • Rolldown 統合に加え、devtools オプションで Vite Devtools を有効化可能。開発サーバーからプロジェクトのデバッグ・分析向け UI へアクセス。
  • TypeScript の path alias を resolve.tsconfigPathstrue にすることでビルトイン解決。公式ではわずかなパフォーマンスコストがありデフォルトは無効。
  • TypeScript の emitDecoratorMetadata を外部プラグインなしで自動サポート。
  • SSR 環境で .wasm?init インポートをサポートし、WebAssembly をサーバー側でも利用可能に。
  • 開発時にブラウザのコンソール出力を CLI へ転送する server.forwardConsole。コーディングエージェント利用時などに CLI 側でクライアントのランタイムエラーを確認しやすくなる設定。エージェント検出時は自動で有効化。
  • 同時リリースの @vitejs/plugin-react v6 は React Refresh に Oxc を利用し、デフォルト構成から Babel 依存を除去。React Compiler が必要な場合は reactCompilerPreset@rolldown/plugin-babel による明示的オプトイン。v5 も Vite 8 で引き続き利用可能。

#留意事項

  • 単体パッケージのインストールサイズは Vite 7 単体と比較しておおよそ 15 MB 増。うち約 10 MB はこれまでオプションの peer だった lightningcss が通常依存になったこと、約 5 MB は Rolldown バイナリが esbuild と Rollup の合計より大きいこと(速度優先の実装との説明)による。
  • 多くのプロジェクトでは、既存の esbuild および rollupOptions を Rolldown と Oxc 向けに自動変換する互換レイヤーにより設定変更なしで移行可能。大規模または複雑なコードベース向けには、先に Vite 7 上で viterolldown-vite に差し替えて Rolldown 固有の問題を切り分け、その後 Vite 8 へ上げる二段階移行を推奨。

#参考文献

編集