Vite 6.0 釋出了!
2024 年 11 月 26 日

今天,我們在 Vite 的發展歷程中又邁出了重要的一步。Vite 團隊、貢獻者以及生態系統合作伙伴非常激動地宣佈 Vite 6 正式釋出。
這一年發生了許多大事。Vite 的採用率持續增長,自一年前 Vite 5 釋出以來,npm 每週下載量已從 750 萬次躍升至 1700 萬次。Vitest 不僅越來越受到使用者青睞,也開始形成其獨立的生態系統。例如,Storybook 現在擁有由 Vitest 支援的全新測試功能。
新的框架也加入了 Vite 生態系統,包括 TanStack Start、One、Ember 等等。Web 框架正以越來越快的速度進行創新。你可以看看 Astro、Nuxt、SvelteKit、Solid Start、Qwik City、RedwoodJS、React Router 等社群夥伴所做的改進,名單還在不斷增加。
OpenAI、Google、Apple、Microsoft、NASA、Shopify、Cloudflare、GitLab、Reddit、Linear 等眾多公司都在使用 Vite。兩個月前,我們開始整理一份使用 Vite 的公司名單。我們很高興看到許多開發者提交 PR 將他們的公司新增到列表中。很難相信,自 Vite 邁出第一步以來,我們共同構建的生態系統已經成長了這麼多。

加速 Vite 生態系統
上個月,社群齊聚第三屆 ViteConf,該會議再次由 StackBlitz 主辦。這是規模最大的一次 Vite 大會,來自生態系統的開發者們有著廣泛的代表性。在眾多公告中,尤雨溪(Evan You)宣佈了 VoidZero,這是一家致力於為 JavaScript 生態系統構建開源、高效能且統一的開發工具鏈的公司。VoidZero 背後是 Rolldown 和 Oxc,他們的團隊正在取得重大進展,使其能夠迅速被 Vite 採用。觀看 Evan 的主題演講,瞭解更多關於 Vite 基於 Rust 的未來規劃。
Stackblitz 推出了 bolt.new,這是一個結合了 Claude 和 WebContainers 的 Remix 應用,讓你能夠透過提示詞(prompt)來編輯、執行和部署全棧應用。Nate Weiner 宣佈了 One,這是一個由 Vite 驅動的、用於 Web 和原生應用的全新 React 框架。Storybook 展示了他們最新的由 Vitest 驅動的 測試功能。還有更多精彩內容。我們鼓勵大家觀看 全部 43 場演講。演講者們投入了大量精力來分享各自專案的最新動態。
Vite 還更新了落地頁,並啟用了簡潔的新域名。今後,請將你的 URL 更新指向新的 vite.dev 域名。新設計和實現由 VoidZero 完成,採用了與他們官網相同的製作團隊。特別鳴謝 Vicente Rodriguez 和 Simon Le Marchant。
Vite 的下一個重大版本已經到來
Vite 6 是自 Vite 2 以來最重要的主要版本更新。我們渴望與生態系統合作,透過新的 API 繼續擴充套件我們共享的公共設施,並一如既往地提供一個更加完善的基礎設施。
快速連結
如果你是 Vite 的新手,我們建議先閱讀開始使用和功能介紹指南。
我們要感謝超過 1000 名 Vite 核心貢獻者,以及 Vite 外掛、整合、工具和翻譯的維護者與貢獻者,他們幫助我們打造了這個新的重大版本。我們邀請你參與其中,幫助我們為整個生態系統改進 Vite。瞭解更多資訊,請檢視我們的貢獻指南。
要開始參與,我們建議協助分類 Issue、評審 PR、基於開放 Issue 傳送失敗測試的 PR,並在 Discussions 和 Vite Land 的 幫助論壇中為他人提供支援。如果你想與我們交流,請加入我們的 Discord 社群並在 #contributing 頻道打個招呼。
獲取有關 Vite 生態系統和 Vite 核心的最新訊息,請關注我們的 Bluesky、X 或 Mastodon。
開始使用 Vite 6
你可以使用 pnpm create vite 快速建立一個首選框架的 Vite 應用,或者在 vite.new 線上體驗 Vite 6。你也可以執行 pnpm create vite-extra 來獲取其他框架和執行時(Solid, Deno, SSR 和庫入門)的模板。當你執行 create vite 時,在 Others 選項下也可以找到 create vite-extra 模板。
Vite 起步模板旨在作為測試 Vite 與不同框架配合使用的練習場。構建實際專案時,你應該參考各框架官方推薦的起步工具。create vite 也提供了快捷方式來設定某些框架的官方起步工具,如 create-vue、Nuxt 3、SvelteKit、Remix、Analog 和 Angular。
Node.js 支援
Vite 6 支援 Node.js 18、20 和 22+,這與 Vite 5 類似。Node.js 21 的支援已被移除。Vite 會在 Node.js 舊版本達到 EOL(生命週期結束)後取消對其的支援。Node.js 18 的 EOL 時間是 2025 年 4 月底,屆時我們可能會發佈一個新的重大版本以提升所需的 Node.js 最低版本。
實驗性環境 API (Environment API)
藉助全新的環境 API,Vite 變得更加靈活。這些新 API 將允許框架作者提供更接近生產環境的開發體驗,並使生態系統能夠共享新的構建模組。如果你正在構建 SPA,一切都不會改變;當你使用具有單一客戶端環境的 Vite 時,一切都像以前一樣工作。即使是對於自定義 SSR 應用,Vite 6 也是向後相容的。環境 API 的主要受眾是框架作者。
對於感到好奇的終端使用者,Sapphi 撰寫了一篇非常出色的環境 API 介紹指南。這是一個瞭解我們為何致力於讓 Vite 更具靈活性的絕佳起點。
如果你是框架作者或 Vite 外掛維護者,想要利用這些新 API,可以在 環境 API 指南中瞭解更多資訊。
我們要感謝所有參與定義和實現這些新 API 的人們。這一切始於 Vite 2 採用了由 Rich Harris 和 SvelteKit 團隊開創的非打包式 SSR 開發方案。隨後,Vite 的 SSR 轉換功能解鎖了 Anthony Fu 和 Pooya Parsa 建立 vite-node 並改進 Nuxt 開發 SSR 體驗的能力。Anthony 後來利用 vite-node 來驅動 Vitest,而 Vladimir Sheremet 作為 Vitest 維護者持續對其進行改進。2023 年初,Vladimir 開始致力於將 vite-node 合併到 Vite 核心中,我們在一年後的 Vite 5.1 中將其作為執行時 API 釋出。來自生態系統合作伙伴的反饋(特別感謝 Cloudflare 團隊)促使我們對 Vite 的環境進行了更雄心勃勃的重構。你可以在 Patak 的 ViteConf 24 演講中瞭解更多背後的故事。
Vite 團隊的所有成員都參與了定義這個新 API 的工作,它是在參考了生態系統中許多專案的反饋後共同設計的。感謝所有參與的人!如果你正在基於 Vite 構建框架、外掛或工具,我們鼓勵你參與進來。這些新 API 目前是實驗性的。我們將與生態系統合作,評估這些 API 的實際使用情況,並在下一個重大版本中將其穩定下來。如果你有任何疑問或想提供反饋,這裡有一個 公開的 GitHub 討論區。
主要變更
resolve.conditions的預設值變更- JSON 字串化處理
- HTML 元素中資產引用的擴充套件支援
- postcss-load-config 更新
- Sass 現在預設使用現代 API
- 支援在庫模式下自定義 CSS 輸出檔名
- 以及更多僅影響少數使用者的變更
此外,還有一個新的破壞性變更頁面,列出了 Vite 中所有計劃中、考慮中和過去的變更。
遷移到 Vite 6
對於大多數專案,更新到 Vite 6 應該非常簡單,但我們建議在升級前查閱詳細的遷移指南。
完整的變更列表請查閱 Vite 6 更新日誌。
鳴謝
Vite 6 是我們的社群貢獻者、下游維護者、外掛作者和 Vite 團隊長時間努力工作的成果。我們感謝贊助 Vite 開發的個人和公司。Vite 由 VoidZero 與 StackBlitz、Nuxt Labs 和 Astro 合作推出。特別鳴謝 Vite GitHub 贊助者和 Vite Open Collective 的贊助者們。
