我們很高興地宣布 Vite 8 正式穩定發布!Vite 最初推出時,我們務實地押注在兩個建置器上:esbuild 用於開發期間的快速建置,Rollup 用於優化的生產環境建置。這個選擇多年來一直對我們很有幫助。我們非常感謝 Rollup 和 esbuild 的維護者。沒有他們,Vite 就不可能成功。如今,這一切都整合為一:Vite 8 採用 Rolldown 作為單一、統一、基於 Rust 的建置器,在保持完整插件相容性的同時,將建置速度提升了 10-30 倍。這是自 Vite 2 以來最重大的架構變革。

Vite 每週的下載量已達 6500 萬次,生態系統也隨著每次發布持續成長。為了幫助開發者駕馭不斷擴展的插件生態,我們還推出了 registry.vite.dev,一個可搜尋的 Vite、Rolldown 和 Rollup 插件目錄,每日從 npm 收集插件資料。

使用 vite.new 線上體驗 Vite 8,或使用 pnpm create vite 和您偏好的框架在本地建置 Vite 應用程式。更多資訊請參閱入門指南。

從早期版本開始,Vite 就依賴兩個獨立的建置器來滿足不同的需求。esbuild 負責開發期間的快速編譯(依賴項預建置和 TypeScript/JSX 轉換),讓開發體驗感覺即時。Rollup 負責生產環境的建置、程式碼分割和優化,其豐富的插件 API 為整個 Vite 插件生態系統提供支援。

這種雙建置器方法多年來一直對 Vite 很有幫助。它使我們能夠專注於開發者體驗和協調,而不是從頭開始重新發明解析和建置。但這也帶來了取捨。兩個獨立的轉換管線意味著兩個獨立的插件系統,並且需要越來越多的膠水程式碼來保持兩個管線同步。模組處理不一致的邊緣案例隨著時間的累積而增加,並且一個管線中的每次對齊修復都有可能在另一個管線中引入差異。

Rolldown 是由 VoidZero 團隊建置的基於 Rust 的建置器,旨在直接解決這些挑戰。它的設計有三個目標:

遷移到 Rolldown 是經過深思熟慮且由社群驅動的。首先,我們發布了一個獨立的 rolldown-vite 套件作為技術預覽,讓早期採用者無需影響 Vite 的穩定版本即可測試 Rolldown 的整合。早期採用者的回饋非常有價值。他們透過各種規模的真實程式碼庫對整合進行了測試,暴露了我們可以在廣泛發布前解決的邊緣案例和相容性問題。我們還建立了一個專用的 CI 套件,針對新建置器驗證關鍵的 Vite 插件和框架,及早發現回歸並建立對遷移路徑的信心。

2025 年 12 月,我們發布了完全整合 Rolldown 的 Vite 8 Beta 版。在 Beta 期間,Rolldown 本身從 Beta 進階到發布候選版,並透過 Vite 社群的測試和回饋不斷改進。

在 rolldown-vite 的預覽和 Beta 階段,幾家公司報告了生產環境建置時間的顯著縮短:

對於大型專案,影響尤其顯著,我們預期隨著 Rolldown 的持續發展,效能將進一步提升。

透過 Vite 8,Vite 成為一個端對端工具鏈的入口點,與密切協作的團隊合作:建置工具(Vite)、建置器(Rolldown)和編譯器(Oxc)。這種對齊確保了從解析和解析到轉換和最小化,整個堆疊的行為一致。這也意味著我們可以快速採用新的語言規格,隨著 JavaScript 的演進。透過深度整合各層級,我們可以追求以前無法實現的優化,例如利用 Oxc 的語義分析來改善 Rolldown 中的 tree-shaking。

這一切都離不開更廣泛的社群。我們要衷心感謝框架團隊(SvelteKit、React Router、Storybook、Astro、Nuxt 等)早期測試 rolldown-vite、提交詳細的錯誤報告,並與我們合作解決相容性問題。我們同樣感謝每一位嘗試 Beta 版、分享建置時間改進並報告了幫助我們完善此版本的粗糙之處的開發者。您願意在實際專案中測試遷移,幫助我們更順暢、更可靠地過渡到 Rolldown。

Vite 8 需要 Node.js 20.19+、22.12+,與 Vite 7 的要求相同。這些版本範圍確保 Node.js 在無需標誌的情況下支援 require(esm),允許 Vite 僅以 ESM 形式分發。

除了 Rolldown 整合之外,Vite 8 還包含幾項值得注意的功能:

整合式開發工具:Vite 8 提供了開發工具選項以啟用 Vite Devtools,這是一個用於偵錯和分析的開發者工具。Vite Devtools 可直接從開發伺服器深入了解您的 Vite 專案。

內建 tsconfig 路徑支援:開發者可以透過設定 resolve.tsconfigPaths 為 true 來啟用 TypeScript 路徑別名解析。這會產生少許效能成本,且預設未啟用。

emitDecoratorMetadata 支援:Vite 8 現在內建對 TypeScript 的 emitDecoratorMetadata 選項的自動支援,無需外部插件。詳情請參閱功能頁面。

Wasm SSR 支援:.wasm?init 匯入現在可在 SSR 環境中使用,擴展了 Vite 的 WebAssembly 功能至伺服器端渲染。

瀏覽器主控台轉發:Vite 8 可以將瀏覽器主控台日誌和錯誤轉發到開發伺服器終端機。這在使用程式碼代理時特別有用,因為執行階段的客戶端錯誤會顯示在 CLI 輸出中。透過 server.forwardConsole 啟用,當偵測到程式碼代理時會自動啟動。

與 Vite 8 同步,我們發布了 @vitejs/plugin-react v6。該插件使用 Oxc 進行 React Refresh 轉換。Babel 不再是依賴項,安裝體積也更小。

對於需要 React Compiler 的專案,v6 提供了 reactCompilerPreset 輔助函數,可與 @rolldown/plugin-babel 搭配使用,提供明確的光學選擇路徑,而不會增加預設設定的負擔。

更多詳情請參閱發布說明。

請注意,v5 仍可與 Vite 8 搭配使用,因此您可以在升級 Vite 後再升級插件。

Rolldown 整合為效能改進和優化打開了大門。以下是我們接下來的計畫:

完整建置模式(實驗性):此模式在開發期間建置模組,類似於生產環境建置。初步結果顯示開發伺服器啟動速度加快 3 倍,完整重新載入速度加快 40%,網路請求減少 10 倍。這對於未建置開發方法遇到擴展限制的大型專案尤其有影響。

原始 AST 傳輸:允許 JavaScript 插件以最小的序列化開銷存取 Rust 產生的 AST,縮小 Rust 內部和 JS 插件程式碼之間的效能差距。

原生 MagicString 轉換:啟用自訂轉換,其中邏輯位於 JavaScript 中,但字串操作計算在 Rust 中執行。

穩定化環境 API:我們正在努力使環境 API 穩定。生態系統已開始定期會議以更好地協作。

我們希望公開 Vite 安裝體積的變更。Vite 8 本身比 Vite 7 大約增加了 15 MB。這主要來自兩個來源:

我們將繼續監控並努力在 Rolldown 成熟後減少安裝體積。

對於大多數專案,升級到 Vite 8 應該是一個順暢的過程。我們建置了一個相容性層,可自動將現有的 esbuild 和 rollupOptions 設定轉換為其 Rolldown 和 Oxc 對應項,因此許多專案無需任何設定變更即可正常運作。

對於較大或較複雜的專案,我們建議採用逐步遷移路徑:首先在 Vite 7 上將 vite 切換到 rolldown-vite 套件,以隔離任何 Rolldown 特定的問題,然後再升級到 Vite 8。這種兩步驟方法可以輕鬆識別任何問題是來自建置器變更還是來自其他 Vite 8 變更。

升級前請仔細閱讀詳細的遷移指南。完整的變更列表請參閱 Vite 8 Changelog。

隨著 Vite 轉向 Rolldown,我們要藉此機會對使 Vite 成為可能的兩個專案表達我們最深的感謝。

Rollup 自始至終一直是 Vite 的生產環境建置器。其優雅的插件 API 設計被證明非常周全,以至於 Rolldown 採用了它,而 Vite 的整個插件生態系統都源於 Rollup 所奠定的基礎。Rollup 架構的品質和深思熟慮塑造了 Vite 對擴展性的思考方式。感謝 Rich Harris 創建 Rollup,以及 Lukas Taegert-Atkinson 和 Rollup 團隊維護並將其發展成對 Web 工具生態系統產生持久影響的事物。

esbuild 從早期就為 Vite 卓越的開發體驗提供了動力:依賴項預建置、TypeScript 和 JSX 轉換在毫秒內完成,而非數百毫秒。esbuild 證明了建置工具可以快幾個數量級,其速度為 Rust 和 Go 語言建置工具的整整一代樹立了標竿。感謝 Evan Wallace,您向我們所有人展示了什麼是可能的。

沒有這兩個專案,Vite 就無法成為今天的樣子。即使我們與 Rolldown 一起前進,Rollup 和 esbuild 的影響也深深植根於 Vite 的 DNA 中,我們感謝它們為生態系統所做的一切。您可以在我們的致謝頁面上了解更多關於 Vite 所依賴的所有專案和人員。

Vite 8 由 sapphi-red 和 Vite 團隊領導,並得到了廣泛的社群貢獻者、下游維護者和插件作者的協助。我們要感謝 Rolldown 團隊的緊密合作,使 Rolldown 驅動的 Vite 8 成為可能。我們還要特別感謝所有參與 rolldown-vite 預覽和 Vite 8 Beta 期間的人員。您的測試、錯誤報告和回饋使 Rolldown 遷移成為可能,並塑造了這個讓我們引以為傲的版本。

Vite 由 VoidZero 與 Bolt 和 NuxtLabs 合作推出。我們還要感謝 Vite 的 GitHub Sponsors 和 Vite 的 Open Collective 上的贊助商。