Vite 8.0 正式发布:告别 esbuild + Rollup,Rust 重构带来 30 倍构建加速

更新日期: 2026-03-15 阅读: 27 标签: Vite

Vite 8.0 的发布,几乎可以说是这个项目诞生以来最重要的一次架构转向。

过去,Vite 一直建立在“双构建器并行”的模式上;而这一次,它终于彻底告别了那套老路,转向了一条更统一、也更激进的新方案:基于 Rust 的一体化工具链。

结果也很直接——性能上去了,结构变简单了,开发体验反而更顺了。

下面,就来看看 Vite 8.0 到底带来了什么,以及它为什么值得你认真关注。


双构建器时代,正式结束了

从很早开始,Vite 的核心模式其实一直是“两套引擎同时工作”:

  • esbuild:负责开发阶段的极速体验,比如 TypeScript / JSX 转换、依赖预构建

  • Rollup:负责生产环境构建、chunk 切分,以及整个成熟的插件生态

这套组合在过去几年里跑得确实非常成功,也正因为如此,Vite 才能在前端工具领域快速站稳。

但问题也越来越明显。

两条独立的转换链路,意味着:

  • 两套行为逻辑

  • 两套插件系统

  • 越来越多的中间胶水代码

  • 以及围绕模块处理不一致而不断积累的边缘问题

这些东西,早晚都会变成包袱。

而 Vite 8 做的第一件大事,就是不再继续背这个包袱。


Rolldown 出场

Vite 8 背后最关键的新主角,就是 Rolldown

这是一个由 VoidZero 团队开发的、基于 Rust 的新一代 bundler,它的目标非常明确:不是辅助 esbuild 和 Rollup,而是直接把它们原本承担的核心角色统一起来。

这一变化的影响,远不止“换了个工具”这么简单。

因为一旦开发和生产走向同一个核心构建体系,很多过去绕不开的问题,就有机会从根上消失。

Vite 官方给出的变化非常亮眼:

  • 构建速度:相比 Rollup,构建可快 10 到 30 倍

  • 插件兼容性:绝大多数现有 Vite 插件,无需修改就能继续工作

  • 新能力开放:像 Full Bundle Mode、灵活的 chunk 切分、模块级持久缓存、Module Federation 等,过去在双构建器模型下很难自然实现的能力,现在终于有了更合理的落点

更关键的是,这不是只停留在口号层面的提升。在 beta 阶段,一些真实项目已经给出了非常夸张的加速结果:

  • Linear:46 秒 → 6 秒

  • Ramp:整体提升 57%

  • Mercedes-Benz.io:最高提升 38%

  • Beehiiv:提升 64%

这些数字放在前端工程世界里,已经不是“小优化”,而是能直接改变团队体感的级别了。


VoidZero 工具链

如果只把 Vite 8 理解成“Vite 换成了 Rolldown”,其实还不够。

更准确的说法应该是:Vite 8 正在把自己变成一整条端到端工具链的入口

这套新的分层结构,可以概括成三层:

  • Vite:编排层,负责开发体验和 dev server

  • Rolldown:打包层,负责链接和产物组织

  • Oxc:编译层,负责解析和转换

这三层协同起来的意义非常大。

它意味着,从代码解析、模块解析、语法转换,到最终打包和压缩,整条链路终于开始朝着统一行为、统一语义、统一优化方向发展。

而这种一致性,一旦建立起来,就会释放很多过去做不到的优化空间。

比如,Oxc 的语义分析能力,就可以反过来帮助 Rolldown 做更聪明的 tree-shaking。这种跨层协同,在以前双引擎拼接的状态下,几乎很难真正做深。


新特性与开发者体验提升

Rolldown 是最显眼的大 headline,但 Vite 8 并不只是“底层替换”这么单薄。

它还顺手做了一批非常实用的 DX 升级,而且很多以前要靠样板代码或者额外插件才能解决的事,现在直接内置了。

内建 Devtools

Vite 8 现在提供了一个可选的 devtools 开关。

打开之后,你可以直接在 dev server 里用上一整套调试和分析能力,包括:

  • 查看模块图

  • 观察 transform 管线

  • 实时理解当前构建链条到底发生了什么

这对调试复杂项目、分析构建异常、看插件行为,帮助会非常大。

内建 tsconfig paths 支持

以前如果你想让 Vite 识别 TypeScript 路径别名,通常还得额外装插件。现在,直接把 resolve.tsconfigPaths 设为 true 就行。

当然,它是 opt-in 的。因为官方也明确提到,这会带来一点点性能成本。但对于很多项目来说,这点代价完全值得。

原生支持 emitDecoratorMetadata

这对 NestJS、Inversify 以及一类 heavily 依赖元数据框架来说,是非常实在的改进。

以前这些场景往往得额外调配置、补兼容。现在,标准 TypeScript decorators 可以更自然地工作起来。

Wasm SSR 支持

Vite 8 现在让 .wasm?init 这类导入方式在 SSR 场景里也能工作了。

这意味着,WebAssembly 的使用边界又被往服务端渲染方向推了一步。对于一些依赖 Wasm 做性能加速或底层能力封装的项目,这会很有价值。

浏览器控制台转发到终端

通过开启 server.forwardConsole,客户端浏览器里的 console.log 和运行错误,可以直接被转发到你的终端里。

这个小功能看起来不起眼,但在实际开发里真的很爽。

尤其是当你在和 AI 编码代理协作时,它会特别有用。Vite 甚至给出了一个很有意思的细节:

如果系统检测到 coding agent 的存在,这个能力会自动启用。

也就是说,你的 AI 搭档不再需要你手动复制浏览器报错给它看,它可以直接“看到”运行时错误。

这一步,对 AI 辅助开发体验来说,其实很关键。


react 生态同步升级:@vitejs/plugin-react v6

React 插件这次也跟着做了不小的调整,而且整体方向非常明显:更少 babel,更靠近新的 Rust 路线。

默认走 Oxc,摆脱 Babel 依赖

在 React Refresh 相关转换上,v6 默认开始使用 Oxc。带来的好处也很直接:

  • 安装体积变小

  • 冷启动更快

  • 整个链路更统一

  • 对 React Compiler 更友好

如果你已经在尝试新的 React Compiler,那么 v6 也已经为这类场景准备了 reactCompilerPreset,可以和 @rolldown/plugin-babel 一起使用。

这意味着,Vite 不只是要跟上 React 的变化,它还在主动给下一阶段的 React 玩法留入口。


需求与内部变更

Node.js 版本要求没有放松

Vite 8 依然要求:

  • Node.js 20.19+

  • 或 22.12+

这和 Vite 7 保持一致。

原因在于,这两个版本支持 require(esm) 无需额外 flag,也因此 Vite 才能更彻底地走向 ESM-only 发行方式。

安装体积会变大一点

很多人升级后可能会发现:安装包比以前重了。

官方给出的解释大致是,多了大约 15 MB 左右:

  • 约 10 MB:来自 lightningcss,现在它成了高性能 CSS 压缩的标准方案

  • 约 5 MB:来自 Rolldown 二进制文件,它显然更在意执行速度,而不是把二进制尽量做小

这类体积增长,放在本地开发工具里,其实完全可以理解。毕竟它换回来的,是明显更强的执行效率。


接下来还会发生什么?

Rolldown 集成进来之后,Vite 的路线图一下子被打开了很多。

官方已经明确提到,后面还有不少值得期待的方向。

Full Bundle Mode(实验中)

开发阶段也进行打包,行为更接近生产环境。

目前早期数据已经很能打:

  • dev server 启动快约 3 倍

  • 全量 reload 快约 40%

  • 网络请求数下降约 10 倍

如果这个模式后续成熟下来,前端本地开发体验可能会出现新一轮明显变化。

Raw AST Transfer

让 JavaScript 插件可以以更低的序列化成本访问 Rust 生成的 AST。这会直接改善插件层和底层编译层之间的沟通效率。

Native MagicString Transforms

允许你继续在 JavaScript 里写 transform 逻辑,但字符串操作底层可以交给 Rust 跑。这本质上是把“写插件的灵活性”和“底层执行速度”尽量一起保住。

稳定版 Environment api

官方也在继续推进 Environment API 的最终定型,希望它能在整个生态里稳定下来。这个东西一旦成熟,会进一步决定未来很多工具和插件该如何围绕 Vite 协作。


最后

Vite 8 的意义,不只是“更快了”。

真正重要的是,它终于不再满足于做一个体验很好的 dev server 外壳,而是开始把自己重新定义成一条完整、统一、可持续进化的现代前端工具链。

从 esbuild + Rollup 的双轨模式,走向 Vite + Rolldown + Oxc 的统一体系,这一步不是普通升级,而是一次很彻底的方向切换。

对开发者来说,最直观的感受可能会是:

  • 构建更快

  • 配置更少

  • 行为更一致

  • 和未来生态的连接更顺

而从更长远的角度看,这可能也是 Vite 真正进入下一阶段的开始。这一次,它不是在微调体验。它是在重新定义自己的地基。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/13414

相关推荐

VueConf 2025 技术盘点:Vue与Vite迈向大一统时代

7月的深圳,VueConf 2025大会刚刚结束。Vue作者尤雨溪带来了关于Vue和Vite的最新动态。这些更新将深刻影响前端开发方式,下面就是本次大会的核心内容。

使用Vite快速构建前端React项目

Vite是一种面向现代浏览器的一个更轻、更快的前端构建工具,能够显著提升前端开发体验。除了Vite外,前端著名的构建工具还有Webpack和Gulp。目前,Vite已经发布了Vite3

在vite2和Vue3中配置Mockjs

在 Vite2 与 Vue3 中使用Mockjs时有一些官方文档没有提到的注意点,特意做此记录。MockJS 依赖的安装,在 package.json 中设置环境变量,在 vite.config.js 中添加 mockjs 插件

Vite多页面应用配置&使用vite-plugin-html向html模板注入数据或标签

在开发过程中,简单地导航或链接到 /nested/ - 将会按预期工作,与正常的静态文件服务器表现一致。也就是说,如果你的文件夹有如下层级:

vue3 vite 系统标题 系统名称统一配置

想要统一配置系统名称 或者其他的,需要在vue3中使用 vite 的环境变量;vite 的环境变量 需要创建两个文件(和 vite.config.js 文件同一目录)

Vite开发环境搭建

Vite现在可谓是炙手可热,可能很多小伙伴还没有使用过Vite,但是我相信大多数小伙伴已经在使用Vite了,因为是太香了有没有。可能在使用过程中很多东西Vite不是配置好的,并不像Vue-cli配置的很周全,那么今天就说一下如何配置开发环境

Vite开发快速入门

Vite (法语意为快速的,发音 /vit/) 是一种面向现代浏览器的一个更轻、更快的前端构建工具,能够显著提升前端的开发体验。除了Vite外,前端著名的构建工具还有Webpack和Gulp。目前,Vite已经发布了Vite2,Vite全新的插件架构、丝滑的开发体验

你还不会写 vite 插件吗?没关系,我教你啊!

vite 其实就是一个由原生 ES Module 驱动的新型 Web 开发前端构建工具。vite 插件 就可以很好的扩展 vite 自身不能做到的事情,比如 文件图片的压缩、 对 commonjs 的支持、 打包进度条 等等。

vue3.x+ts+vite2环境变量配置

默认 dev 环境下使用 .env.development 环境变量配置, build 环境下使用 .env.production ,所以不需要在 package.json 中再指定模式了

Vite使Vue CLI过时了吗?

Vue 生态系统中有一个名为 Vite 的新构建工具,它的开发服务器比 Vue CLI 快 10-100 倍。这是否意味着 Vue CLI 已经过时了?在本文中,我将比较这两种构建工具

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!