Vite8来啦,告别 esbuild + Rollup,Vite 8 统一用 Rolldown 了

用 Vite 做项目的应该都有感觉:开发体验一直很顺,但生产构建这块,项目一大就开始拉胯。

问题出在 Vite 的双引擎架构------开发用 esbuild,生产用 Rollup。两套东西,行为不一致,偶尔还会出现"本地没问题,构建就炸"的玄学 bug。

12 月 3 号,Vite 8 Beta 发布了,底层换成了 Rolldown。我第一时间把手上的项目升级了,踩了几个坑,这里记录一下。


Rolldown 是什么

简单说:一个 Rust 写的打包器,目标是同时替代 esbuild 和 Rollup。

尤雨溪的 VoidZero 团队搞的,拿了 1700 多万美金融资。整个工具链是这样的:

  • Vite(构建工具)
  • Rolldown(打包器)
  • Oxc(编译器、压缩器)

三个项目同一个团队维护,行为一致性有保障。

Rolldown 和 esbuild 速度差不多,比 Rollup 快 10-30 倍。尤雨溪自己测 Vue 核心代码的打包,Rolldown 比 Rollup 快 7 倍,比 esbuild 还快将近 2 倍。


真实项目数据

看看早期用户的反馈:

项目 构建时间变化 提升倍数
Linear 46s → 6s 7.6x
Excalidraw 22.9s → 1.4s 16x
GitLab 2.5min → 40s 3.75x
Beehiiv - 64% 更快

GitLab 还有个离谱的数据:内存占用降了 100 倍。


升级步骤

升级本身不复杂:

bash 复制代码
pnpm add -D vite@8.0.0-beta.0 @vitejs/plugin-vue@latest

Node.js 版本要求 20.19+ 或 22.12+,18 不支持了。

装完大概率能跑,但如果你用了 manualChunks,会遇到问题。


踩坑:manualChunks 不能用了

我的项目之前用对象形式配置 chunk 分割:

javascript 复制代码
// 旧写法,Vite 8 直接报错
rollupOptions: {
  output: {
    manualChunks: {
      'vue-vendor': ['vue', 'pinia'],
      'monaco': ['monaco-editor'],
    }
  }
}

跑构建直接炸:TypeError: manualChunks is not a function

Rolldown 不支持对象形式的 manualChunks,得改成 advancedChunks

javascript 复制代码
// 新写法
rollupOptions: {
  output: {
    advancedChunks: {
      groups: [
        { name: 'vue-vendor', test: /[\\/]node_modules[\\/](vue|pinia)[\\/]/ },
        { name: 'monaco', test: /[\\/]node_modules[\\/]monaco-editor[\\/]/ },
      ]
    }
  }
}

用正则匹配模块路径,比之前的数组形式更灵活,但迁移需要手动改一遍。


其他变化

配置项重命名

build.rollupOptions 以后要改成 build.rolldownOptions,目前还兼容但会有警告。

CSS 压缩

默认从 esbuild 换成了 Lightning CSS。想换回去可以设置 build.cssMinify: 'esbuild'

JS 压缩

从 esbuild 换成了 Oxc Minifier。

插件兼容性

大部分 Vite 插件直接能用。少数依赖 esbuild 特定选项的需要适配。


开发服务器

开发服务器启动速度没太大变化,本来就快。

但后面会有个 Full Bundle Mode,开发阶段也打包。官方初步数据:

  • 启动快 3 倍
  • 热更新快 40%
  • 网络请求少 10 倍

大型项目福音,不过目前还没正式发布。


要不要升

我的建议:

现在可以升的

  • 个人项目、实验性项目
  • 构建时间已经成为痛点的大型项目
  • 愿意踩坑反馈问题的

等等再升的

  • 生产环境稳定性优先的项目
  • 依赖大量 Rollup 特定配置的
  • 等正式版发布(估计一两个月内)

顺手推几个开源项目

既然聊到 Vite 和前端工具链,推一下我做的几个开源项目:

chat_edit - 双模式 AI 应用,聊天 + 富文本编辑整合在一起。技术栈刚升级到 Vue 3.5 + TypeScript + Vite 8,可以作为 Vite 8 实战参考。自己配置 API key 就能部署,支持导出 PDF、DOCX、Markdown。

code-review-skill - Claude Code 的代码审查技能,覆盖 React 19、Vue 3、Rust、TypeScript 等主流技术栈。采用按需加载设计,审查 React 代码时只加载 React 相关规则,不浪费 token。大概 9000 行最佳实践。

5-whys-skill - "5 个为什么"根因分析技能。遇到 bug 或者系统问题时,说"找根因"就能自动激活,输出结构化的分析报告。排查问题挺好用的。

first-principles-skill - 第一性原理思考技能,适合架构设计和技术方案选型。不是套模板,是真的帮你拆解问题本质。

感兴趣的可以去 GitHub 看看。


相关链接

相关推荐
枫,为落叶1 小时前
VueRouter前端路由
前端
踢球的打工仔1 小时前
前端知识介绍
前端
草字2 小时前
uniapp 悬浮按钮支持可拖拽。可移动。
前端·javascript·uni-app
一位搞嵌入式的 genius2 小时前
Vue实例挂载:从原理到项目实践的全维度解析
前端·javascript·vue.js·前端框架
waeng_luo2 小时前
[鸿蒙2025领航者闯关] 表单验证与用户输入处理最佳实践
开发语言·前端·鸿蒙·鸿蒙2025领航者闯关·鸿蒙6实战·开发者年度总结
0思必得02 小时前
[Web自动化] 开发者工具应用(Application)面板
运维·前端·python·自动化·web自动化·开发者工具
m0_740043732 小时前
Vue Router中获取路由参数d两种方式:$route.query和$route.params
前端·javascript·vue.js
风止何安啊2 小时前
Event Loop 教你高效 “划水”:JS 单线程的“摸鱼”指南
前端·javascript·面试
@菜菜_达2 小时前
goldenLayout布局
前端·javascript