Vite 5.0 發佈了!
2023 年 11 月 16 日
Vite 4 幾乎在一年前發佈,它作為生態系統的堅實基礎。隨著專案持續在共享基礎架構上建構,每週 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 中都持續改進。
一個月前,我們舉辦了第二屆 ViteConf,由 StackBlitz 主辦。和去年一樣,生態系統中的大多數專案都聚集在一起,分享想法並建立連結,以持續擴展共享資源。我們也看到新的組件補足了元框架工具,像是 Volar 和 Nitro。Rollup 團隊在同一天發佈了 Rollup 4,這是 Lukas 去年開始的傳統。
六個月前,Vite 4.3 發佈。此版本大幅提高了開發伺服器的效能。但是,仍有很大的改進空間。在 ViteConf 上,尤雨溪揭示了 Vite 的長期計畫,將開發 Rolldown,這是與 Rollup 相容 API 的 Rust 版本。一旦準備就緒,我們打算在 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 的新手,我們建議您先閱讀入門和功能指南。
我們感謝超過 850 位 Vite Core 的貢獻者,以及 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 和程式庫入門)。當您在 Others
選項下執行 create vite
時,也可以使用 create vite-extra
範本。
請注意,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.dev.org.tw/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 和 尤雨溪的 GitHub Sponsors 上的贊助者。特別感謝 Remix 在切換到 Vite 後成為黃金贊助商並回饋貢獻。