注册
web

Vite 底层彻底换血,尤雨溪想要控制整个前端生态?

Hello,大家好,我是 Sunday。


最近,尤雨溪发了一篇非常关键的文章,宣布 Vite 正式引入 Rust 写的打包器 Rolldown,并将逐步替代现有的 Rollup 成为 默认打包器




该文章发布在 尤雨溪 新公司 void(0),文章链接:https://voidzero.dev/posts/announcing-rolldown-vite



虽然这篇文章的内容并不长,但是内部做出的改成确实非常大的,可以毫不夸张的说:尤雨溪把整个 vite 的心脏都换掉了!


所以,咱们今天这篇文章,我不打算重复发布会上的内容,而是一起来看看这波 “换心脏” 的背后逻辑:为什么 Rust 能上位?真实速度到底快了多少?尤雨溪到底在下一盘什么棋?


01:Vite 正在全面 Rust 化


很多人看到这次更新,可能会说:“Rolldown 不就是个性能更好的打包器吗?用不用都行吧?”


说实话,这种理解可能有些过于表面了。


这次更新的不仅仅是一个工具,而是把整个的 vite 底层都重写了一遍:



  • Vite 的打包器,从 JS 写的 Rollup,换成了 Rust 写的 Rolldown
  • 配套的 Babel、Terser、ESLint,也被 Rust 实现的 Oxc 接管
  • 整个构建链路,从解析到压缩,从转换到分析,全都 Rust

为什么要这么干呢?


很简单,因为:JS 写的构建工具已经摸到天花板了。


不管你怎么做缓存、怎么压缩 AST、怎么优化 Plugin 顺序,JS 就是做不到 Rust 那种级别的执行效率。


而现代前端的项目体积正在变得越来越大,早就不是之前只写几个静态页面的事情了!


目前 微前端、组件库、国际化、权限系统……每加一个功能,构建时间就会变得越来越长,特别是很多公司在配合 CI/CD 的逻辑,每构建跑一次可能就得跑 2 分钟,而如果换成 Rolldown 那么就只要 15 秒上下了,你算算整个团队每天省下多少时间?


因此,这样的替换 “势在必行”,同时这也标记着:Vite 已经不再是一个 JS 写的现代前端工具了,而是一个由 Rust 驱动的、高性能构建内核。


02:真实表现到底快了多少?


咱们先来看官方数据:



这些官方给出的数据看上去是不是非常炸裂!


但是,根据前端圈的历史特性:所有官方性能对比,都只能作为参考,而不能作为实际的决策依据。


为啥呢?


因为,实际开发中,环境不同、项目结构不同、依赖链不同、构建目标不同,变量太多了。


很多的 demo 是干净环境下跑的,而你实际项目里,插件、polyfill、非预构建依赖一大堆,所以 官方数据,仅供参考!


但我要说的是:哪怕实际操作中,只能做到官方数据的一半,这件事也值得我们去尝试下。


就拿我自己接触的几个中大型项目来说,生产环境下的 Vite 构建时间基本都在 30 秒到 2 分钟之间浮动,特别是:



  • 多语言、主题、子应用拆包场景下,Rollup 明显吃力
  • babel + terser 的组合在压缩阶段特别耗 CPU
  • 内存比较小的,如果在启动其他的任务(你电脑总得开其他的软件吧),那速度就更慢了

换句话说,如果 Rolldown 真能在这些环节上带来 哪怕 30% 的性能提升,对于团队的持续集成、构建稳定性、开发反馈体验,都是实打实的收益。


03:尤雨溪在下一盘大棋


很多同学可能会说:Vite 已经“遥遥领先”了,为啥还非要换底层呢?多麻烦呀!


如果你有这种疑惑的话,那么可能是因为你对 vite 使用到的这些新工具还不太了解,如果你了解一下背后的发布方,就知道这件事没那么简单。


Rolldown 是谁发布的?不是 Vue,也不是 Vite 核心团队,而是尤雨溪创办的新公司 —— VoidZero (也叫做 void(0) ) 。想要详细了解的,可以看下我之前发的这篇文章 尤雨溪新公司 Void(0) 首款产品发布,竟然是它...


这是一家由 尤雨溪 创建的专门做 JavaScript 工具链的开源公司。关于这一块的详细介绍,可以看这篇博客 尤雨溪创建 VoidZero ,并得到 460 万美金融资


这家公司刚一出手就连放两个大招:



  • 第一个是 Oxc :这是一个全新的 Rust 实现 JS 工具链(parser、transform、minifier、linter、formatter,全都自己造)
  • 第二个就是 Rolldown:Vite 打包器的 Rust 替代方案,目标直接瞄准 Rollup、Babel、Terser 这整条传统链路

而这次 Vite 接入 Rolldown,正是 void(0) 把自家工具「回注入」开源生态的第一步。



所以这不是在“优化 Vite”,而是想要 “替换整条构建基础设施”



你可以这么理解 void(0) 的策略路径:



  1. Vue 站稳前端框架圈核心位置
  2. Vite 用 Rollup 起家,成为构建工具主流选择
  3. void(0) 作为新公司登场,切入工具链底层,用 Rust 重写一整套生态
  4. 再反哺 Vite,用 Rolldown 替代原来的 JS 构建方案
  5. 最终形成:Vue + Vite + void(0) 工具链 的闭环

这其实是一个很聪明、很清晰的长期路线图:不再被 Babel、Terser、ESLint 等“生态外依赖”所绑定,而是自己控制工具底层、性能节奏、开发体验。


尤雨溪本人也在社区里反复提过:Vite 的未来,不只是“构建工具”,而是下一代工程化的“前端开发基建平台”。


而这张底牌,就是 Rolldown + Oxc。


你可以想想看,如果:



  • Vue 生态已经在试水 Rolldown
  • Vite 即将全面接入 Rolldown
  • Vite 插件作者必须适配 Rolldown(否则未来会不兼容)

那就意味着:



无论你是 Vue、React、Svelte,还是用 Vite 的任何框架,都必须配合这次 “Rust 工具链” 的迁移。 否则将有可能会被踢出前端生态。



而想要参与,就必须要使用 Void(0) 的产品。


这样,尤雨溪就可以很成功的让 Void(0) 变成整个前端生态的标准了!


作者:程序员Sunday
来源:juejin.cn/post/7511583779578642483

0 个评论

要回复文章请先登录注册