返回 文章 学习 CMS 文章

VoidZero 团队加入 Cloudflare:Vite 生态迎来新篇章

VoidZero 团队加入 Cloudflare,Vite 等核心工具保持开源中立,Cloudflare 投入资源并承诺 100 万美元生态基金,同时计划将自身 CLI 迁移至 Vite 基础。

ViteCloudflareVoidZero开源
成长分 / 100 82 综合收获、行动、留存与影响

VoidZero 团队加入 Cloudflare:Vite 生态迎来新篇章
为什么值得读了解 Vite 生态系统的重大组织变动及其对开源社区的影响

洞察 Cloudflare 如何通过投资基础工具链来推动开发者平台发展

关键洞察
  1. Vite、Vitest、Rolldown、Oxc 和 Vite+ 保持 MIT 许可、开源、厂商无关,路线图仍由社区驱动
  2. Cloudflare 承诺向 Vite 生态系统基金投入 100 万美元,由 Vite 核心团队管理
  3. Cloudflare 计划将自身 CLI(cf)迁移至基于 Vite 的体验,使 cf dev/build/deploy 成为 vite 的超集
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:11750

VoidZero,即 ViteVitestRolldownOxcVite+ 背后的公司,正在加入 Cloudflare。作为此次变更的一部分,VoidZero 的所有团队成员也将加入 Cloudflare。

在说其他事情之前,我们想先明确最重要的一点:Vite、Vitest、Rolldown、Oxc 和 Vite+ 将保持开源、厂商无关和社区驱动。这一点不会有任何改变。

Cloudflare 的使命是帮助构建更好的互联网。而更好的互联网是开放的互联网。开发者需要选择,框架需要中立的基础,应用程序需要可移植。期望整个 Web 生态系统围绕单一厂商构建是不合理的。最重要的工具和框架在设计上就应该是可移植的。

Vite 是整个 JavaScript 生态系统都认同的少数基础工具之一。它凭借快速、优秀、可移植和厂商中立赢得了这一地位。Cloudflare 帮助构建更好互联网的最佳方式之一,就是投资于这一基础性的开源工具链。一个让互联网对所有人都更好的工具链,而不仅仅是使用 Cloudflare 或选择托管在我们这里的用户。

在过去几年中,我们投入了大量资源,使 Cloudflare 成为在 开发者平台 上构建和运行网站、应用程序和代理的最佳场所。但最终,这个选择始终在您手中。您可以在任何地方运行您的 Vite 应用程序。

今天的消息为 Vite 提供了更多资源以继续发展,而成就 Vite 的那些特质保持不变:

Vite 保持 MIT 许可和开源。

Vite 保持厂商无关。使用 Vite 构建的应用程序可以在任何地方运行,并且将继续如此。

Vite 的路线图继续由更广泛的 Vite 团队和社区驱动,并继续在开放中开发。

Evan 和 VoidZero 团队的其他成员继续领导 Vite、Vitest、Rolldown、Oxc 和 Vite+。

Cloudflare 正在向这些项目投入工程和资源,而不是转移它们。

今年早些时候,当 Astro 加入 Cloudflare 时,我们做出了同样的承诺。Astro 仍然是开源的,并且仍然可以部署到任何地方。团队仍在推进他们原本的路线图。

这一承诺对 Vite 更为重要,因为 Vite 不仅仅是一个框架。Vite 是众多框架的基础:VueSvelteKitNuxtAstroSolidQwikAngularReact RouterTanStack Start。甚至 Next.js 现在也有一个基于 Vite 的实现 vinext。Vite 已成为 JavaScript 生态系统的共享基础。

我们的首要目标是维护让 Vite 获得如此广泛采用的信任。不是通过我们在这里的言辞,而是通过每天在支持和开发这些项目中的实际行动来证明。

我们也希望在对开源和共享生态系统基础的支持上言行一致。作为此次公告的一部分,Cloudflare 承诺向 Vite 生态系统基金投入 100 万美元,以支持维护者和贡献者,该基金由 Vite 核心团队管理。Vite 比 VoidZero 或 Cloudflare 更宏大,那些帮助构建它的人应该成为未来的一部分。

Vite 和 Cloudflare 团队在此公告之前就已展开良好合作,始于 2024 年的 Vite 环境 API。环境 API 让 Vite 在开发期间能够在 Node.js 之外的环境中运行服务器代码。我们与 Vite 团队密切合作设计了该 API,并在此基础上构建了 Cloudflare Vite 插件

当你使用 Cloudflare 插件运行 vite dev 时,你的服务器代码会在 workerd 中运行,这是与生产环境中驱动 Workers 相同的开源运行时。Durable Objects、D1、KV、R2、Workflows、Workers AI、Agents、Service Bindings、Workers RPC——所有这些都在本地以与生产环境相同的运行时模型运行。

长期以来,在非 Node 运行时上开发的代价是本地开发体验感觉像是生产环境的劣化版。环境 API 消除了这一代价,且无需任何人采用 Cloudflare 特定的开发服务器。任何希望接入 Vite 的运行时都可以做同样的事情。这种设计——Vite 中的通用机制加上特定提供商的实现——已被证明行之有效,也是我们希望继续发展的方向。

当我们看到 Cloudflare Vite 插件的采用率飙升时,我们就知道我们做对了:

Vite 的采用曲线是目前生态系统中值得关注的现象之一。截至本文撰写时,Vite 的周下载量约为 1.29 亿次。Cloudflare Vite 插件(@cloudflare/vite-plugin)的周下载量接近 1400 万次

如果一年前有人告诉我们 Cloudflare Vite 插件的下载量将达到 Vite 本身的 10% 以上,我们不会相信。发生了什么?AI 发生了。正在创建的软件比以往任何时候都多,其中很多始于 AI 生成的代码。这些应用程序需要一个默认栈和一个运行场所。由 Agent 编码的应用程序正在选择 Vite,并且越来越多地选择在 Cloudflare 上运行 Vite。

AI 正在改变我们编写软件的方式

过去,开发者是开发服务器、打包工具、linter、格式化工具和 CLI 的唯一用户。现在不再如此:Agent 也在持续使用它们。它们搭建项目、运行开发服务器、读取错误、编写测试、lint 和格式化代码、部署预览并迭代。

许多 AI 生成的应用程序已经以 Vite 应用起步,因为 Vite 快速、易于理解,并且与 Agent 在训练数据中看到的内容广泛兼容。快速反馈循环一直很重要。当使用 Agent 编写软件时,它们变得更加关键:

快速构建,因为 Agent 比人类迭代更多。

快速测试,因为 Agent 不断重新运行测试套件以验证自己的工作。

快速 lint 和格式化,因为这些工具成为护栏。

清晰、结构化的错误,因为 Agent 必须读取并据此采取行动。

一致的 CLI,因为小的不一致会导致大的弯路。

整个 VoidZero 工具链就是为此类循环而构建的。Vitest、Rolldown、Oxc、Oxlint 和 Oxfmt 各自都是其类别中最快的工具之一,并且当 Agent 反复运行时它们表现良好。Vite+ 将这些组件整合到一个工具链中,拥有一个 CLI、一个配置模型和更少的活动部件。这使得开发循环更容易被人类理解,也更容易被 Agent 可靠地驱动。

我们自己在内部使用这套方案。Cloudflare 仪表盘就是基于 Vite 构建的。Oxlint 已经在 Cloudflare 代码库中 节省了数天的工程时间。来自 Astro 团队的代理框架 Flue 也在迁移到 Vite 作为其基础。Flue 可以在 Node.js、Cloudflare Workers、GitHub Actions、GitLab CI/CD 等环境中运行代理,而 Cloudflare 目标现在使用了官方的 Cloudflare Vite 插件和 workerd 集成。Vite 正在成为 Cloudflare 内部的默认应用基础。

Vite 正在成为全栈工具

几年前,构建工具的工作很简单:获取源文件,生成打包文件,然后交付。这对于现代应用来说已经不够了,尤其是在某些应用本身就是代理的世界里。

一个现代应用包括服务端渲染的路由、API、后台任务、队列、数据库、对象存储、实时通信、认证,以及越来越多的代理和 AI 能力。“构建”不再是终点。它是部署的开始,而部署必须理解所有这些部分。

这意味着 Vite 必须超越构建工具的范畴。它需要理解更多应用层面的内容,同时保持 Vite 最初成功的核心:速度、简洁和可移植性。

Void,一个为 Vite 设计的部署平台,一直是这些想法的试验场。它帮助我们探索了现代应用框架应该拥有什么,部署应该是什么感觉,以及整个应用生命周期中有多少可以围绕一个工具链统一。我们从这项工作中收获了很多。

现在的工作是将这些经验放在正确的位置。有些属于 Vite 本身,作为与提供商无关的基元:为后端、API、代理和部署提供一流的抽象和钩子,任何提供商都可以实现。其他经验属于 Cloudflare。Cloudflare 将在 Workers 和我们开发者平台的其余部分提供这些钩子的一流实现。

尽管一些 Vite 维护者加入了 Cloudflare,但对 Vite 本身的更改将继续通过与其他 Vite 贡献相同的开放贡献流程进行。添加到 Vite 本身的功能不应是 Cloudflare 特有的。它们将在 Vite 运行的任何地方都能工作。

将 Cloudflare 向 Vite 靠拢

同样的原则也塑造了我们如何看待 Cloudflare 自身工具的未来。我们不是让 Vite 向 Cloudflare 的方向发展。我们正在做相反的事情:将 Cloudflare 的应用工具迁移到 Vite 上,使其建立在开发者已经熟悉的工作流程之上。

我们最近发布了 cf 的技术预览版,这是一个面向整个 Cloudflare 平台的新统一 CLI。Vite 将成为我们应用 CLI 体验的基础。最终目标是为整个 Cloudflare 提供一个一致的 CLI,无论你是在处理 Workers、R2、D1、代理还是其他任何东西,都能获得相同的操作体验。

如果我们做对了,Cloudflare CLI 应该感觉像 Vite,而不是一个附加在 Vite 旁边的独立东西。

cf dev 应该是 vite dev 的超集。相同的速度,相同的热模块替换,相同的插件模型,再加上你需要的 Cloudflare 运行时和绑定。

cf build 应该原生理解 Vite 项目,无需适配器转换。

cf deploy 应该让将 Vite 应用部署到 Cloudflare 变得简单。

如果你现在正在使用 Vite,迁移到 Cloudflare 的感觉就像替换为你已经熟悉的命令的超集。相同的项目结构。相同的 Vite 工作流。当你需要时,整个 Cloudflare 开发者平台都可使用。

短期内,对于 Vite 用户或基于 Vite 构建的框架来说,没有任何变化:

Vite、Vitest、Rolldown、Oxc 和 Vite+ 继续发布。VoidZero 团队继续贡献并领导它们。

Cloudflare Vite 插件持续改进。

Environment API 以及“在本地正确的运行时中运行你的服务器代码”这一更广泛的故事不断变得更好,包括对于非 Cloudflare 运行时。

长期来看:

我们开始将 Cloudflare CLI 迁移到直接基于 Vite 构建的体验。

Vite 将为全栈应用和代理提供新的、干净的、与提供商无关的原语,适用于任何平台上的所有人。

随着时间的推移,我们打算开源 Void 平台,以便其他人可以从中学习,并在 Vite 和 Cloudflare 之上构建自己的平台。

我们将公开地、与社区一起完成所有这些工作。就像 Vite 一直以来的构建方式一样。

Vite、Vitest、Rolldown、Oxc 和 Vite+ 的存在是因为一个由开源贡献者组成的深厚生态系统投入了多年的工作。这些项目已经成为 Web 构建方式的基础,我们感谢每一位帮助它们走到今天的人。感谢每一位在此过程中贡献代码、审查、问题、文档、插件、集成和支持的人。

我们很高兴欢迎 VoidZero 团队加入 Cloudflare,并很高兴为这些项目投入更多资源。我们现在的工作是帮助它们成长,保持开放,并为每个人赋能 JavaScript 生态系统。

Vite 仍然是 Vite。Cloudflare 得以提供帮助。

如果你想立即在 Cloudflare 上尝试 Vite,请运行:

npm create vite@latest

npx wrangler deploy