Vite 5.0がリリースされました!
2023年11月16日

Vite 4は約1年前にリリースされ、エコシステムの強固な基盤となりました。npmの週あたりのダウンロード数は250万から750万に跳ね上がり、プロジェクトは共通のインフラ上で構築され続けています。Astro、Nuxt、SvelteKit、Solid Start、Qwik Cityなどの既存のフレームワークに加え、新しいフレームワークが参加し、エコシステムを強化しているのを見ました。RedwoodJSとRemixがViteに切り替えたことで、Reactエコシステムでのさらなる採用への道が開かれました。VitestはViteよりもさらに速いペースで成長を続けました。そのチームは精力的に作業を進め、間もなくVitest 1.0をリリースする予定です。Storybook、Nx、Playwrightなどの他のツールとViteを使用した場合のストーリーは改善され続け、同様に環境についても、Vite開発はDenoとBunの両方で機能しています。
1ヶ月前には、StackBlitzが主催するViteConfの第2回が開催されました。昨年と同様に、エコシステム内のほとんどのプロジェクトが集まり、アイデアを共有し、コモンズを拡大し続けるために連携しました。また、VolarやNitroなど、メタフレームワークツールベルトを補完する新しいピースも登場しています。Rollupチームは、昨年Lukasが始めた伝統に従い、同日にRollup 4をリリースしました。
6ヶ月前、Vite 4.3がリリースされました。このリリースにより、開発サーバーのパフォーマンスが大幅に向上しました。しかし、改善の余地はまだ十分にあります。ViteConfで、Evan Youは、互換性のあるAPIを持つRollupのRustポートであるRolldownの開発に関するViteの長期計画を発表しました。準備が整い次第、Rollupとesbuildの両方のタスクをVite Coreで使用する予定です。これにより、ビルドパフォーマンスの向上(そしてVite自体のパフォーマンスに敏感な部分をRustに移行することで、開発パフォーマンスも向上します)、および開発とビルド間の不整合の大幅な削減が実現します。Rolldownは現在初期段階にあり、チームは年末までにコードベースをオープンソース化する準備を進めています。お楽しみに!
本日、Viteの道のりにおいて、もう1つの大きな節目を迎えます。Viteチーム、コントリビューター、およびエコシステムパートナーは、Vite 5のリリースを発表できることを大変嬉しく思います。Viteは現在Rollup 4を使用しており、これによりビルドパフォーマンスが大幅に向上しています。また、開発サーバーのパフォーマンスプロファイルを改善するための新しいオプションも追加されています。
Vite 5は、APIの整理(非推奨機能の削除)と、長年の問題を解決するいくつかの機能の合理化に焦点を当てています。例えば、defineは正規表現ではなく適切なAST置換を使用するように変更されました。また、Viteを将来にわたって対応させるための手順も引き続き進めています(Node.js 18+が必須となり、CJS Node APIは非推奨となりました)。
クイックリンク
他の言語でのドキュメント
Viteを初めてお使いになる場合は、まず「はじめに」と「機能」のガイドを読むことをお勧めします。
私たちは、Vite Coreへの850人以上のコントリビューター、そしてViteプラグイン、統合、ツール、翻訳のメンテナーとコントリビューターが、ここまで到達するのに貢献してくれたことに感謝しています。皆様にもご参加いただき、Viteを共に改善し続けていただくことを奨励します。コントリビューションガイドで詳細を学ぶことができます。まず、問題のトリアージ、PRのレビュー、オープンな問題に基づいた失敗テストのPRの送信、そしてディスカッションやVite Landのヘルプフォーラムで他の人を助けることをお勧めします。そうすることで多くのことを学び、プロジェクトへのさらなる貢献への道が開かれるでしょう。疑問がある場合は、Discordコミュニティに参加して、#contributingチャンネルで挨拶してください。
最新情報を得るには、XまたはMastodonでフォローしてください。
Vite 5でクイックスタート
pnpm create viteを使用して、お好みのフレームワークでViteプロジェクトを足場に構築するか、vite.newを使用してオンラインで開始されたテンプレートを開き、Vite 5を試してみてください。また、pnpm create vite-extraを実行して、他のフレームワークやランタイム(Solid、Deno、SSR、ライブラリスターター)のテンプレートにアクセスすることもできます。create vite-extraテンプレートは、create viteをOthersオプションの下で実行した場合にも利用できます。
Viteスターターテンプレートは、異なるフレームワークでViteをテストするためのプレイグラウンドとして使用することを意図しています。次のプロジェクトを構築する際には、各フレームワークが推奨するスターターにアクセスすることをお勧めします。一部のフレームワークでは、create viteで独自のスターターにリダイレクトするようになりました(Vueの場合はcreate-vueとNuxt 3、Svelteの場合はSvelteKit)。
Node.jsのサポート
Viteは、EOLに達したNode.js 14 / 16 / 17 / 19をサポートしなくなりました。Node.js 18 / 20+が必須です。
パフォーマンス
Rollup 4のビルドパフォーマンス向上に加え、https://vite.dokyumento.jp/guide/performanceで一般的なパフォーマンスの問題を特定し、修正するのに役立つ新しいガイドが提供されています。
Vite 5では、起動時間を改善するための新機能であるserver.warmupも導入されています。これにより、サーバーが起動するとすぐに事前変換されるべきモジュールのリストを定義できます。--openまたはserver.openを使用する場合、Viteはアプリのエントリーポイントまたは開くための指定されたURLも自動的にウォームアップします。
主な変更点
- ViteはRollup 4によって駆動されるようになりました
- CJS Node APIは非推奨になりました
defineとimport.meta.env.*の置換戦略を再構築- SSRの外部化されたモジュールの値が本番環境と一致するようになりました
worker.pluginsが関数になりました.を含むパスがindex.htmlにフォールバックできるように- 開発環境とプレビュー環境のHTML配信動作を統一
- マニフェストファイルがデフォルトで
.viteディレクトリに生成されるようになりました - CLIショートカットには追加の
Enterキー押下が必要 experimentalDecoratorsとuseDefineForClassFieldsのTypeScript動作を更新--httpsフラグとhttps: trueを削除resolvePackageEntryとresolvePackageDataAPIを削除- 以前に非推奨になったAPIを削除
- プラグインおよびツール作成者に影響を与える高度な変更点の詳細を読む
Vite 5への移行
私たちは、エコシステムパートナーと協力し、この新しいメジャーバージョンへのスムーズな移行を保証するために取り組んできました。今回も、vite-ecosystem-ciは、回帰を回避しながら大胆な変更を行う上で非常に重要でした。他のエコシステムが、プロジェクトとダウンストリームメンテナー間のコラボレーションを改善するために同様のスキームを採用しているのを見るのは素晴らしいことです。
ほとんどのプロジェクトにとって、Vite 5へのアップデートは簡単であるはずです。しかし、アップグレードする前に詳細な移行ガイドを確認することをお勧めします。
Viteコアへの変更点の全リストを含む詳細な内訳は、Vite 5変更履歴にあります。
謝辞
Vite 5は、コントリビューターのコミュニティ、ダウンストリームメンテナー、プラグイン作者、そしてViteチームによる長時間の作業の成果です。このメジャーリリースのプロセスをリードしてくれたBjorn Luに感謝します。
また、Viteの開発を後援してくださっている個人や企業にも感謝しています。StackBlitz、Nuxt Labs、Astroは、Viteチームメンバーを雇用することでViteへの投資を続けています。ViteのGitHub Sponsors、ViteのOpen Collective、そしてEvan YouのGitHub Sponsorsのスポンサーに感謝します。Viteに切り替えた後、ゴールドスポンサーとなり、貢献してくださったRemixに特別に言及させていただきます。