编者注:Vue.js 作者 Evan You 于 10 月 1 日在 X 上宣布成立 VoidZero。并附博客地址。
博客英文原文:https://voidzero.dev/posts/announcing-voidzero-inc
转自“前端圈”
具体博客内容如下:
我已经成立了 VoidZero 公司,这是一家致力于为 JavaScript 生态系统构建开源、高性能和统一开发工具链的公司。我们已获得由 Accel 领投的 460 万美元种子轮融资。
十五年前,当我开始使用 JavaScript 构建应用程序时,它主要是一种基于浏览器的脚本语言。如今,它已经发展成为世界上使用最广泛的语言,支持从 Web 和移动应用到游戏开发,甚至物联网的各种应用。
多年来,许多优秀的工具应运而生,以解决 JavaScript 应用程序日益增长的规模和复杂性。然而,生态系统一直是分散的:每个应用程序都依赖于众多第三方依赖,而将它们配置在一起工作仍然是开发周期中最具挑战性的任务之一。
作为最广泛使用的前端框架之一的作者,我投入了大量精力研究 JavaScript 工具栈的每一层,组装了数百个依赖项,并在它们之上设计了复杂的抽象。目标始终是为终端用户提供一个连贯的、开箱即用的开发体验。这些努力最终导致了 2020 年 Vite 的诞生。
四年过去了,Vite 现在已经成为 Web 开发中最受欢迎的构建工具之一,每周下载量超过 1500 万次,拥有庞大的生态系统。除了是使用 React 和 Vue 构建单页应用程序的首选工具外,Vite 还为 Remix、Nuxt、Astro、SvelteKit、SolidStart、Qwik、Redwood 等元框架提供支持。它显然已经确立了自己作为下一代 Web 框架共享基础设施层的地位。
Vite 自 2020 年以来的每周 NPM 下载量
社区对 Vite 的信任使我深入思考其未来。虽然 Vite 极大地改善了高层开发者体验,但在内部,它仍然依赖于各种依赖项,使用抽象和变通方法来消除不一致性。就性能而言,它仍然受到不同工具之间重复解析和序列化成本的限制,并且由于功能限制和有限的可定制性,无法充分利用 esbuild 等原生工具。
我们开始设计一个新的打包工具 Rolldown,专门针对 Vite 的需求。但当我深入研究打包工具底层时,我意识到 Vite 面临的挑战实际上反映了 JavaScript 生态系统普遍存在的问题:分散化、不兼容性和低效率。要从根本上改变这一点,需要一个统一的工具链。
想象一个具备以下特点的工具链:
统一:对所有任务(解析、转换、代码检查、格式化、打包、压缩、测试)使用相同的 AST、解析器和模块互操作,消除不一致性并减少重复解析成本。
高性能:使用编译到原生代码的语言编写,从零开始设计以追求速度,最大程度的并行化和低开销的 JS 插件支持。性能预算的提升不仅能够实现更多雄心勃勃的功能,改善开发者体验,还能提升终端用户体验。
可组合:工具链的每个组件都可以独立使用,为高级定制提供构建块。
运行时无关:不绑定于任何特定的 JavaScript 运行时——在所有环境中提供相同的开发者体验。
这样的工具链不仅会增强 Vite,还会推动整个 JavaScript 生态系统的显著改进。这是一个雄心勃勃的愿景,实现它需要一个全职的专门团队——这在我过去项目的独立可持续模式下是不可能的。这就是为什么要成立 VoidZero。
我很高兴地宣布,我们已经筹集了 460 万美元的种子轮融资来追求这一愿景。我们的种子轮由 Accel 领投,参与方包括 Amplify Partners、Preston-Werner Ventures、BGZ、Eric Simons(StackBlitz)、Paul Copplestone(Supabase)、David Cramer(Sentry)、Matt Biilmann和Christian Bach(Netlify)、Dafeng Guo(Strikingly)、Sebastien Chopin(NuxtLabs)、Johannes Schickling(Prisma)和Zeno Rocha(Resend)。
目前的进展
在过去的一年里,我们建立了一个在 JavaScript 工具领域拥有深厚专业知识的团队,包括广泛采用的开源项目如 Vite、Vitest、Oxc 的创建者和核心贡献者,以及 Rspack 的前核心贡献者。
我们一直在努力开发我们设想的工具链的基础要素。除了对 Vite 的持续改进,我们还提供了:
最快和最符合规范的 JavaScript 解析器(oxc-parser),比 SWC 快 3 倍
最快的 Node.js 兼容解析器(oxc-resolver),比 enhanced-resolve 快 28 倍
最快的 TypeScript / JSX 转换器(oxc-transform),比 SWC 快 4 倍
最快的代码检查工具(oxlint),比 ESLint 快 50-100 倍
功能最完整的 Web 应用程序测试运行器(Vitest)
最快的打包工具(Rolldown),建立在 Oxc 之上。比 esbuild 和所有其他 Rust 打包工具都快(目前处于 alpha 阶段)
虽然仍处于早期阶段,但我们的开源项目已经被世界上一些领先的工程团队使用,包括OpenAI(ChatGPT 网页客户端)、Google、Apple、Microsoft、Visa、Shopify、Cloudflare、Atlassian、Reddit、HuggingFace、Linear 等许多公司。
未来计划
我们未来几个月的主要目标是稳定 Rolldown,并使其成为 Vite 在开发和生产环境中的统一打包工具。我们已经取得了很大进展,计划在今年晚些时候发布由 Rolldown 驱动的 Vite 的 alpha 版本。
在 2025 年,我们将继续完成 Oxc计划的其他功能(压缩、格式化),并逐步将整个 Vite 生态系统迁移到由 Rolldown 和Oxc 支持。我们将与生态系统合作伙伴和利益相关者密切合作,确保终端用户的平稳过渡。
我们开源的所有内容都将保持开源。在我们的开源项目之上,我们将提供专门设计的端到端 JavaScript 工具解决方案,以满足企业环境的规模和安全要求。
与我们保持联系!
FAQs 常见问题解答
这些开源项目与 VoidZero 的关系是什么?
Vite 和 Vitest 的团队治理保持不变。两个核心团队都包括来自多个不同组织(VoidZero、StackBlitz、NuxtLabs、Astro)的员工。VoidZero Inc. 雇佣/赞助了 Vite 和 Vitest 的多个核心贡献者。
VoidZero Inc. 持有 Oxc 和 Rolldown 的版权,资助其开发,并控制其方向。 Vue 呢? VoidZero 作为一个企业与 Vue 完全分开。Vue 将继续作为一个独立项目,但将从 VoidZero 开发的新工具中获得一流的支持。 为什么选择 Oxc 而不是 SWC?
我们的许多团队成员过去都对 SWC 做出了重要贡献。除了原始性能优势外,Oxc 与 SWC 相比有一些根本的设计差异,使其成为我们构建端到端工具链的更好基础。我们将在未来的博客文章中分享更多关于这个主题的技术见解。
为什么选择 Rolldown 而不是 esbuild / Rollup?
我们需要一个极其快速、适合应用程序打包,并且与Vite的插件生态系统完全兼容的打包工具。在 Rolldown 文档中详细讨论了这一点。在 Oxc 之上构建 Rolldown 还能够在打包阶段并行执行更多与 AST 相关的任务,例如使用 isolatedDeclarations: true 来生成和打包 dts。 为什么这次会与之前创建统一 JS 工具链的尝试不同? 统一工具链的最大挑战是从零到一的问题:它需要获得关键规模以证明继续开发的合理性,但在真正实现愿景之前很难跨越鸿沟。VoidZero 不存在这个问题,因为 Vite 已经是JavaScript 生态系统中增长最快的工具链。