尤大宣布成立 VoidZero|下一代 JavaScript 工具链

前言

尤大10月1日在 X 宣布 VoidZero 公司成立,这是由 Vite、Vitest、Rolldown 和 Oxc 的创建者和核心贡献者组成,其目的是在一致的愿景下,联合这些项目,为下一代 Web 应用程序提供支持。

截屏2024-10-03 21.34.51.png

VoidZero 的使命是构建统一、高性能、可组合的且与运行时无关的下一代 JavaScript 工具链。

截屏2024-10-03 21.33.31.png

创建 VoidZero 的原因

背景

尤大在 VoidZero 官网的博客中指出,JavaScript 从15年前的一种基于浏览器的脚本语言,发展成为如今世界上使用最多的语言,从为网络和移动应用程序到游戏开发,甚至是物联网的一切提供动力。

多年以来,已经出现了许多优秀的工具来解决 JavaScript 应用程序日益增长的规模和复杂性,然而,生态系统一直是碎片化的,每个应用程序都依赖于无数的第三方依赖项,配置它们以良好地协同工作仍然是开发周期中最艰巨的任务之一。

尤大作为使用最广泛的前端框架(Vue.js)之一的作者,花费了大量精力研究 JavaScript 工具堆栈的每一层,组装数百个依赖项,并在这些基础上构建了复杂的抽象层,其目的就是最终为用户提供有凝聚力的开箱即用的开发体验,这便是 2020 年 Vite 问世的原因。

如今,Vite 现在已经是最受欢迎的 Web 开发构建工具之一,每周下载量超过1500万,拥有庞大的生态系统,除了成为使用 React 和 Vue 构建的单页应用程序的首选之外,Vite 还为 RemixNuxtAstroSvelteKitSolidStartQwikRedwood 等元框架提供支持。它显然已经确立了自己作为下一代 Web 框架共享基础设施层的地位。

截屏2024-10-03 22.53.55.png

虽然 Vite 极大地改善了高级开发人员的体验,但在内部,它仍然依赖于各种依赖关系,通过抽象和变通方法来消除不一致。就性能而言,它仍然受到不同工具之间重复解析和序列化成本的瓶颈,而且由于功能限制和有限的可定制性,它无法完全利用像 esbuild 这样的原生工具。

新的捆绑器 Rolldown 就是为 Vite 的需求量身定制的。但是当尤大冒险深入捆绑器下面的层时,便意识到Vite面临的挑战是整个JavaScript生态系统的反映:碎片化、不兼容和低效率。要从根本上改变这一点,需要一个统一的工具链。

下一代工具链

尤大对未来工具链的设想是这样的:

统一: 对所有任务(解析、转换、检测、格式化、捆绑、缩小、测试)使用相同的 AST、解析器和模块互操作,消除不一致并降低冗余解析成本。

高性能: 用编译到本地语言编写,从头开始设计以提高速度,具有最大的并行化和低开销的 JS 插件支持。性能预算释放了更雄心勃勃的功能,不仅可以改善开发人员体验,还可以改善最终用户体验。

可组合: 工具链的每个组件都是可独立使用的,为高级定制提供构建块。

与运行时无关: 不依赖于任何特定的 JavaScript 运行时-在所有环境中提供相同的开发人员体验。

这样的工具链不仅会增强 Vite,还会推动整个 JavaScript 生态系统的重大改进。这是一个雄心勃勃的愿景,实现它需要一个全职、专注的团队——这在尤大过去项目的独立可持续发展模式下是不可能的。

这就是 VoidZero 成立的原因。

截止到目前的进展情况

在过去的一年里,VoidZero 建立了一个在 JavaScript 工具方面拥有深厚专业知识的团队,包括Vite、Vitest、Oxc 等广泛采用的开源项目的创建者和核心贡献者,以及 Rspack 的前核心贡献者。

截屏2024-10-03 22.00.50.png

除了对 Vite 的持续改进,还包括如下的一些内容:

  • 最快和最符合规范的 JavaScript 解析器(oxc-parser),比 SWC 快 3 倍 – benchmark

  • 最快的 Node.js 兼容解析器(oxc-resolver),比 enhanced-resolve 快 28 倍 – benchmark

  • 最快的 TypeScript/JSX 转换器(oxc-transform),比 SWC 快 4 倍 – benchmark

  • 最快的 linter (oxlint),比 ESLint 快 50-100 倍 – benchmark

  • Web 应用程序功能最齐全的测试运行器(Vitest)。

  • 最快的捆绑器(Rolldown),建立在 Oxc 之上。比 esbuild 和所有其他 Rust 捆绑器更快 – benchmark (currently in alpha)

虽然还处于早期阶段,但开源的项目已经被一些世界领先的工程团队使用,包括OpenAI(ChatGPT网络客户端)、谷歌、苹果、微软、Visa、Shopify、Cloudflare、艾特莱森、Reddit、HuggingFace、Linear等等。

接下来的一些规划

未来几个月的主要目标是稳定 Rolldown,并使其成为 Vite 在开发和生产中的统一捆绑器。目前已经取得了巨大进展,并计划在今年晚些时候发布 Rolldown 驱动的 Vite 的 alpha 版本。

2025年,将继续完成 Oxc 的其他计划功能(缩小、格式化),并逐步迁移整个 Vite 生态系统,由 Rolldown 和Oxc 提供支持。VoidZero 将与生态系统合作伙伴和利益相关者密切合作,确保最终用户的平稳过渡。

VoidZero 开源的一切都将保持开源。在开源项目之上,VoidZero 将提供端到端的 JavaScript 工具解决方案,专为满足企业环境的规模和安全要求而设计。

常见问题解答

这些开源项目和 VoidZero 有什么关系?

Vite 和 Vitest 基于团队的治理保持不变,两个核心团队都包括受雇于多个不同组织(VoidZero、StackBlitz、NuxtLabs、Astro)的成员。VoidZero 公司为 Vite 和 Vitest 雇佣/赞助了多个核心贡献者。

VoidZero 公司拥有版权,为开发提供资金,并控制 Oxc 和 Rolldown 的方向。

Vue 和 VoidZero 有什么关系?

VoidZero 作为一个业务完全独立于 Vue。

Vue 将继续作为一个独立的项目,但将从 VoidZero 开发的新工具中获得一流的支持。

为什么是 Oxc 而不是 SWC?

除了原始性能优势之外,Oxc 与 SWC 还有一些基本的设计差异,这使其成为 VoidZero 正在构建的端到端工具链的更好基础,更多关于此主题的技术见解将在未来的博客文章中分享。

为什么要 Rolldown 而不是 esbuild/Rollup?

Rolldown 是一个速度极快的捆绑器,非常适合应用程序捆绑,并且与 Vite 的插件生态系统完全兼容。

这在 Rolldown 留档中进行了详细讨论,在 Oxc 之上构建 Rolldown 还解锁了在捆绑阶段并行执行更多 AST 相关任务的能力。

为什么这与以前创建统一 JS 工具链的尝试不同?

统一工具链的最大挑战是零比一问题:

它需要获得指数采用的临界质量来证明持续开发的合理性,但在它真正实现愿景之前很难跨越鸿沟。

VoidZero 没有这个问题,因为 Vite 已经是 JavaScript 生态系统中增长最快的工具链。

结束

更多关于 VoidZero 进展和未来计划的细节,以及前端最新技术趋势可在 ViteConf 2024 中查看。

参考资料

  • VoidZero 官网(主要内容来自翻译)
阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=21153,转载请注明出处。
0

评论0

显示验证码
没有账号?注册  忘记密码?