← 返回 Siami 首頁

Vite 母公司 VoidZero 加入 Cloudflare:JavaScript 工具鏈進入『雲端原生 + AI 代理』新時代

▲ 270 💬 149
Vite 母公司 VoidZero 加入 Cloudflare:JavaScript 工具鏈進入『雲端原生 + AI 代理』新時代

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)

#1 HN 用戶 valgaze ▲ 75
Evan You 在 Parsons 唸書時主修藝術史與工作室藝術,後來是為了快速展示作品才硬學了 JavaScript。他在 Google Creative Lab 實習時,看到 Meteor 框架後想:『怎麼沒有人把這種體驗搬到前端來?』就這樣 Vue.js 誕生了。回頭看他整個職涯都圍繞著『讓開發者更快樂』這件事,從 Vue 到 Vite 一以貫之。
#2 HN 用戶 yuppiepuppie ▲ 150
現在熱門開發工具的商業模式都長這樣:1) 打造一套受歡迎的開發工具;2) 拿到創投資金;3) 延攬一流人才;4) 祈禱最後能被『人才收購(acqui-hire)』,藉此讓當初的投資翻本。說到底,這些工具從來就不是為了永續經營的開源專案,而是創投退場策略的一環。
#3 HN 用戶 drewda ▲ 125
很多時候,併購方跟被收購方其實共享投資人或董事會成員。中性地說,創投合夥人會把這些公司視為同一個投資組合的延伸;只要某個團隊自己撐不起來,就可以合併到另一家有相似目標或市場重疊的公司。VoidZero 落到 Cloudflare 手裡,說不定從一開始就是這條劇本。
#4 HN 用戶 pjmlp ▲ 200
提醒大家,Cloudflare 之前買下 BastionZero 的劇情就是前車之鑑。當初的承諾很快被拋諸腦後,產品品質開始下滑(我一個禮拜就找到三個嚴重 bug,他們連 changelog 都懶得發),最後 Cloudflare 直接丟下一句『欸,我們要收掉這個服務了』就把產品關了。Vite 會不會走上同一條路,只能等著看。
#5 HN 用戶 pjmlp ▲ 100
或許只是個人感想,但到了這個階段,我覺得任何累積到臨界用戶規模的 JavaScript 工具,都沒辦法真正逃過被併購的命運。原因是這些現代專案多半以公司形式 spin up 並對外募資,而這個行業裡每家公司最終都在追求某種退出管道。Vite 這次或許是個良性的結局,但開發者社群必須開始正視這個結構性問題。
#6 HN 用戶 runtime_terror ▲ 25
Cloudflare dashboard 最近的 UX 進步很多,但有一點真的讓我抓狂:使用時動不動就被 rate limit。舉個例,我最近要改一批 app 的環境變數,開了十幾個分頁分頭改,改到一半整個被擋下來。希望併購 Vite 之後能順便把 dashboard 的底層體驗也好好整頓一下。