VoidZero 這家推出 Vite、Vitest、Rolldown、Oxc 與 Vite+ 的公司,正式加入 Cloudflare。隨著這項變動,VoidZero 的全體成員也都將加入 Cloudflare。
在說其他事情之前,我們要把最重要的一件事講清楚:Vite、Vitest、Rolldown、Oxc 與 Vite+ 將維持開源、廠商中立(vendor-agnostic)、由社群驅動。這一點不會改變。
Cloudflare 的使命是協助打造更好的網路,而更好的網路就是開放的網路。開發者需要選擇權、框架需要中立的基礎、應用程式需要可攜性(portable)。要求整個網路生態系都圍繞單一廠商建構,並不合理。最重要的工具和框架,本質上就該是可攜的。
Vite 是整個 JavaScript 生態系少數共同認可的基礎工具之一。它之所以能獲得這個地位,是因為夠快、夠優秀、夠可攜,也夠中立。Cloudflare 能夠協助打造更好網路最好的方式之一,就是投資這個基礎開源工具鏈。一個能讓所有人(而不只是 Cloudflare 用戶或選擇託管在我們平台的人)受惠的工具鏈。
過去幾年來,Cloudflare 大量投資把自己打造為在其開發者平台上建構與執行網站、應用程式與代理(agents)的最佳場域。但最終這個選擇權永遠在你手上。你可以把 Vite 應用部署到任何你想要的地方。
這對 Vite 來說代表什麼
今天的消息讓 Vite 獲得更多資源持續成長,但讓 Vite 成為 Vite 的那些本質不會改變:
- Vite 維持 MIT 授權並保持開源。
- Vite 維持廠商中立。用 Vite 打造的應用程式可在任何地方執行,未來也會持續如此。
- Vite 的 roadmap 仍由更廣大的 Vite 團隊與社群驅動,並持續在公開環境中開發。
- Evan 與 VoidZero 團隊其他成員會繼續領導 Vite、Vitest、Rolldown、Oxc 與 Vite+。
- Cloudflare 承諾為這些專案投入工程能量與資源,而不會把資源挪作他用。
今年稍早 Astro 加入 Cloudflare 時,Cloudflare 也做出過同樣的承諾。Astro 仍然是開源,仍然能部署到任何地方,團隊也仍在執行他們原本就在執行的 roadmap。
這份承諾對 Vite 來說更為關鍵,因為 Vite 不是單一框架。Vite 是眾多框架的共同基礎:Vue、SvelteKit、Nuxt、Astro、Solid、Qwik、Angular、React Router、TanStack Start。甚至 Next.js 現在也有了基於 Vite 的實作 vinext。Vite 已經成為 JavaScript 生態系的共享基礎。
Cloudflare 表示,第一要務是維持那份讓 Vite 獲得如此高採用率的信任。不是靠說的話,而是靠每天支持與開發這些專案的方式來證明。
談到對開源與共享生態系基礎的支持,Cloudflare 也宣布承諾提撥 100 萬美元成立 Vite 生態系基金,支援維護者與貢獻者,並由 Vite 核心團隊管理。Vite 比 VoidZero 或 Cloudflare 都更大,曾經協助打造它的人,都應該參與接下來的發展。
Vite 作為基礎
Vite 與 Cloudflare 團隊早在這次公告之前就已經展開合作,從 2024 年的 Vite Environment API 開始。Environment API 讓 Vite 在開發階段能於 Node.js 以外的環境執行伺服器程式碼。Cloudflare 與 Vite 團隊密切合作設計這個 API,接著在上面打造 Cloudflare Vite 插件。
當開發者搭配 Cloudflare 插件執行 vite dev 時,伺服器程式碼會跑在 workerd 內部,這也是驅動正式環境 Workers 的同一個開源執行環境。Durable Objects、D1、KV、R2、Workflows、Workers AI、Agents、Service Bindings、Workers RPC——所有這些都能在與正式環境相同的執行模型下於本地端運作。
很長一段時間,在非 Node 執行環境上開發的代價是:本地開發體驗感覺像是正式環境的劣化版。Environment API 移除了這個代價,卻沒強迫任何人採用 Cloudflare 專屬的開發伺服器。任何想接入 Vite 的執行環境都能做同樣的事。這樣的設計——Vite 中一個通用的機制加上各廠商各自的實作——已經被證明運作良好,也是 Cloudflare 想持續深耕的方向。
採用率數字相當驚人:Vite 目前每週下載量約 1.29 億次,Cloudflare Vite 插件(@cloudflare/vite-plugin)每週下載量也將近 1400 萬次,相當於 Vite 本體的 10% 以上。一年前 Cloudflare 自己也沒預料到這個成績。背後的關鍵是 AI——比過去任何時候都更多的軟體正在被創造,其中很多都從 AI 生成的程式碼開始,而這些應用程式需要一套預設的技術棧和能執行的環境。由代理(agent)撰寫的應用正在選擇 Vite,而且越來越多選擇執行在 Cloudflare 上的 Vite。
AI 正在改變寫軟體的方式
過去開發者曾是 dev server、打包工具、linter、formatter 與 CLI 唯一的使用者。現在已經不是這樣了:代理也在持續使用它們。代理會 scaffold 專案、跑 dev server、讀錯誤訊息、寫測試、做 lint 與 format、部署預覽版、然後反覆迭代。
很多 AI 生成的應用一開始就是 Vite app,因為 Vite 夠快、大家都熟悉、且與代理在訓練資料中看過的內容高度相容。快速回饋的循環一直都很重要,但當用代理寫程式時,它變得更加關鍵:
- 構建要快,因為代理迭代的次數比人類多得多。
- 測試要快,因為代理會反覆重跑整套測試來驗證自己的工作。
- Lint 與 format 要快,因為這些工具成了品質護欄。
- 錯誤訊息要清楚、要有結構,因為代理必須讀懂並採取行動。
- CLI 要一致,因為細微的不一致會造成大幅的繞路。
整套 VoidZero 工具鏈就是為這種循環設計的。Vitest、Rolldown、Oxc、Oxlint 與 Oxfmt 分別都是同類工具中最快的,並且在被代理反覆執行時表現良好。Vite+ 把這些零組件整合成單一工具鏈,提供單一 CLI、單一設定模型、更少的活動部件。這讓開發循環對人類來說更易理解,也讓代理能更可靠地驅動。
Cloudflare 內部也這樣做。Cloudflare dashboard 就是用 Vite 打造的。Oxlint 已經在 Cloudflare 的程式碼庫中省下數天的工程時間。Astro 團隊的代理執行框架 Flue 也正轉移到以 Vite 為基礎。Flue 可以在 Node.js、Cloudflare Workers、GitHub Actions、GitLab CI/CD 等環境中執行代理,而 Cloudflare 目標現在已使用官方的 Cloudflare Vite 插件與 workerd 整合。Vite 正在成為 Cloudflare 內部預設的應用基礎。
Vite 正在變成全端
幾年前,build tool 的工作很單純:拿來源檔、產出 bundle、交出去。在現代應用程式上,這已經不夠,特別是在某些應用程式本身就是代理的世界裡。
一個現代應用程式包含伺服器渲染的路由、API、背景工作、佇列、資料庫、物件儲存、即時通訊、認證,外加越來越多的代理與 AI 能力。「構建」不再是故事終點,而是部署的起點,必須理解上述所有元件。
這代表 Vite 必須超越 build tool。它需要理解更多應用程式面向,同時仍保有 Vite 最初成功的要素:速度、簡潔與可攜性。
Void,這個為 Vite 設計的部署平台,一直是這些概念的試驗場。它協助探索現代應用程式框架應該擁有什麼、部署應該是什麼感覺、以及整個應用程式生命週期有多少能圍繞同一個工具鏈整合起來。Cloudflare 從那段工作中學到很多。
接下來的工作是把這些心得放在對的位置。有些會以廠商中立原語(provider-agnostic primitives)的形式進入 Vite 本身:給後端、API、代理與部署的第一級抽象與鉤子,任何廠商都能實作。有些心得則放在 Cloudflare 內部。Cloudflare 會在 Workers 與其他 Developer Platform 之上提供這些鉤子的第一級實作。
即使部分 Vite 維護者加入 Cloudflare,Vite 本身的改動仍會沿用和其他 Vite 貢獻一樣的開放流程。加入 Vite 本身的功能不該是 Cloudflare 專屬的,它們在 Vite 能運作的任何地方都會有效。
把 Cloudflare 推向 Vite
同一個原則也形塑了 Cloudflare 對自家工具未來的思考方向。Cloudflare 不是把 Vite 往自己的方向推,而是反過來:把 Cloudflare 的應用工具搬上 Vite,讓它建立在開發者已經熟悉的工作流之上。
Cloudflare 最近釋出了 cf 的技術預覽版——一個涵蓋整個 Cloudflare 平台的統一 CLI。Vite 將成為 Cloudflare 應用 CLI 體驗的基礎。最終目標是為整個 Cloudflare 提供一個一致的 CLI,無論開發者在操作 Workers、R2、D1、Agents 或其他東西,都有同樣的人因工程。
如果方向走對,Cloudflare CLI 應該感覺就像 Vite,而不是另一個跟 Vite 並排接上的東西:
cf dev應該是vite dev的超集合。同樣的速度、同樣的熱模組替換、同樣的插件模型,再加上一旦需要就能用的 Cloudflare 執行環境與綁定。cf build應該原生理解 Vite 專案,不需要額外轉接器。cf deploy應該讓把 Vite app 部署到 Cloudflare 變得簡單。
對於現有 Vite 使用者而言,轉到 Cloudflare 的路徑應該感覺像是換上一組熟悉的命令超集合。一樣的專案結構,一樣的 Vite 工作流。整個 Cloudflare 開發者平台在需要時隨時可用。
短期內不會改變的事
短期內,對 Vite 使用者與建立在 Vite 之上的框架來說,一切都沒有改變:
- Vite、Vitest、Rolldown、Oxc 與 Vite+ 持續迭代交付。VoidZero 團隊繼續貢獻並領導這些專案。
- Cloudflare Vite 插件持續改進。
- Environment API 與「在本地用對的執行環境跑伺服器程式碼」這個更宏大的故事持續推進,包括非 Cloudflare 執行環境也受惠。
- Cloudflare 開始把 CLI 搬向直接建立在 Vite 之上的體驗。
- Vite 將獲得乾淨、廠商中立的全端 app 與代理原語,在任何平台上對所有人都能運作。
隨著時間推移,Cloudflare 打算把 Void 平台開源,讓大家能從中學習並在 Vite 與 Cloudflare 之上打造自己的平台。
Cloudflare 表示會在公開場合、和社群一起完成這一切。一直以來 Vite 都是這樣打造出來的。
Vite、Vitest、Rolldown、Oxc 與 Vite+ 的存在,是因為有一整個深度參與的開源貢獻者社群投入了多年心血。這些專案已經是網路建構方式的基礎,Cloudflare 對所有協助走到今天的人心懷感激。
Vite 持續是 Vite,Cloudflare 從旁協助。
如果你想今天就在 Cloudflare 上試用 Vite,請執行:
npm create vite@latest
網友熱門留言 (6)