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をリリースする予定です。ViteとStorybook、Nx、Playwrightなどの他のツールと一緒に使用した場合のViteのストーリーは改善を続け、DenoとBunの両方でViteの開発が機能するようになり、環境も同様に改善されました。
1か月前には、StackBlitzが主催したViteConfの第2回が開催されました。昨年と同様に、エコシステムのほとんどのプロジェクトが集まり、アイデアを共有し、共通のものを拡大するために連携しました。また、VolarやNitroのように、メタフレームワークのツールベルトを補完する新しいものが登場しています。Rollupチームは、同じ日にRollup 4をリリースしました。これはLukasが昨年始めた伝統です。
6か月前、Vite 4.3 がリリースされました。このリリースでは、開発サーバーのパフォーマンスが大幅に向上しました。しかし、改善の余地はまだ十分にあります。ViteConfで、Evan Youは、RollupのRustポートであり、互換性のあるAPIを備えたRolldownに取り組むというViteの長期計画を発表しました。準備が整い次第、Vite Coreでそれを使用して、Rollupとesbuildの両方のタスクを引き受ける予定です。これは、ビルドパフォーマンスの向上(および後には、Vite自体のパフォーマンスに敏感な部分をRustに移行するにつれて、開発パフォーマンスの向上にもつながります)と、開発とビルド間の不一致の大幅な削減を意味します。Rolldownは現在初期段階にあり、チームは年末までにコードベースをオープンソース化する準備を進めています。ご期待ください!
本日、Viteの道のりでまた一つ大きな節目を迎えます。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
テンプレートは、Others
オプションでcreate vite
を実行した場合にも利用できます。
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
とresolvePackageData
APIを削除- 以前に非推奨になった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に特筆します。