Vite 7 と Rolldown - アップグレード前に押さえる Node 要件・ブラウザターゲット・バンドラ移行

Vite 7 と Rolldown - アップグレード前に押さえる Node 要件・ブラウザターゲット・バンドラ移行

作成日:
更新日:

Vite はフロントエンドのビルドツールの定番として、Nuxt・SvelteKit・Astro など多くのフレームワークの土台になっています(Vitest も Vite 上に構築されています)。

その Vite の メジャーバージョン 7 は、アップグレード時にいくつか「詰まりやすいポイント」があります。この記事では、Vite 7 の変更点を移行で引っかかりやすい順に整理します。あわせて、将来のデフォルトになる Rust 製バンドラ Rolldown への移行も解説します。

NOTE

Vite 7 は2025年6月24日にリリースされた版です(本記事は2026年6月時点の整理)。「最新の目玉」というより「もう移行を済ませておくべきメジャー」という位置づけで読んでください。

移行で詰まりやすい順に: 変更点

1. Node.js のバージョン要件(最初の関門)

Vite 7 は Node.js 20.19+ または 22.12+ を要求します。Node.js 18 のサポートは打ち切られました(18 は2025年4月に EOL)。

必要な Node: 20.19+ または 22.12+
切られた Node: 18系

「Vite を上げたらそもそも起動しない」の大半はこれです。CI のNodeバージョン、package.jsonengines、各開発者の手元を先に揃えてください。なぜ 20.19/22.12 という細かい指定かというと、これらのバージョンで ESM の取り回しが改善され、Vite が ESM-only 配布へ移行できるためです。

2. デフォルトブラウザターゲットの変更(見落としやすい)

デフォルトのブラウザターゲットが、従来の 'modules' から 'baseline-widely-available' に変わりました。これにより、サポートする最小ブラウザバージョンが上がります。

ブラウザ
Chrome87107
Edge88107
Firefox78104
Safari14.016.0

新しめのブラウザ機能をトランスパイルせずそのまま出すようになるため、出力が軽くなる一方、古いブラウザを公式サポートしているプロダクトは注意が必要です。必要なら build.target を明示的に指定して、従来の対象を維持してください。

3. 削除されたもの

  • Sass legacy API のサポート: 旧 API に依存していると動かなくなる。Sass を使っているなら modern API への移行が必要
  • splitVendorChunkPlugin: 削除済み。チャンク分割は別の方法(build.rollupOptions 等)で

4. Vitest のバージョン整合

Vite 7 には Vitest 3.2 以降が必要です。テストに Vitest を使っている場合、Vite と Vitest を揃えて上げる必要があります。

Rolldown: 将来のデフォルトバンドラ

Vite はこれまで、開発時は esbuild、本番ビルドは Rollup を使う構成でした。ここに、Rust 製の新バンドラ Rolldown が加わります。「遅いJSツールをネイティブ言語で作り直す」という、TypeScript の Go 移植Biomeと同じ大きな潮流の一環です。

今は opt-in(rolldown-vite)

Vite 7 時点では、Rolldown は rolldown-vite パッケージとして opt-in で試せます。標準の Vite パッケージのドロップイン置き換えとして動作します。

Rolldown 版を試す(package.json で差し替え)
{
  "dependencies": {
    "vite": "npm:rolldown-vite@latest"
  }
}

npm: エイリアスで viterolldown-vite に差し替えるだけで、既存設定のまま Rolldown ベースのビルドを試せます。Rolldown はいずれ Vite のデフォルトバンドラになる計画ですが、Vite 7 時点ではまだ実験的です。

WARNING

Rolldown はドロップイン置き換えを目指していますが、Rollup プラグインの挙動差や、まだ実験的であることに注意してください。本番に入れる前に、ビルド成果物・チャンク分割・プラグインの動作を必ず検証してください。大規模プロジェクトほど差が出やすい部分です。

アップグレード手順(推奨フロー)

詰まりどころを踏まえた、安全な移行順序です。

  1. Node を上げる: 20.19+ / 22.12+ に。CI・engines・手元を揃える
  2. Vite 7 へ上げる: Vitest を使うなら 3.2+ も同時に
  3. ブラウザターゲットを確認: 古いブラウザ対応が必要なら build.target を明示
  4. 削除APIの対処: Sass legacy API、splitVendorChunkPlugin を使っていれば移行
  5. (任意)Rolldown を試す: rolldown-vite でビルドを検証。問題なければ採用を検討

まとめ

  • Vite 7(2025年6月24日)は Node.js 20.19+/22.12+ が必須。Node 18 は非対応。「起動しない」の大半はこれ
  • デフォルトブラウザターゲットが baseline-widely-available に。最小ブラウザ版が上がるので古い対応が必要なら build.target を明示
  • Sass legacy API と splitVendorChunkPlugin が削除。Vitest は 3.2+ が必要
  • Rust 製バンドラ Rolldown は rolldown-vite で opt-in。将来のデフォルトだが現時点は実験的
  • 移行は「Node → Vite(+Vitest) → ブラウザターゲット → 削除API → 任意でRolldown」の順が安全

Vite 7 自体は派手な新機能より「土台の更新」が中心ですが、Node 要件とブラウザターゲットで足をすくわれやすい版です。移行の勘所を押さえておけば、Rolldown という次の高速化の波にもスムーズに乗れます。

参考リンク