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 看看。


相关链接

相关推荐
killerbasd1 小时前
牧苏苏传 我不装了 4/7
前端·javascript·vue.js
吴声子夜歌2 小时前
ES6——二进制数组详解
前端·ecmascript·es6
码事漫谈2 小时前
手把手带你部署本地模型,让你Token自由(小白专属)
前端·后端
ZC跨境爬虫2 小时前
【爬虫实战对比】Requests vs Scrapy 笔趣阁小说爬虫,从单线程到高效并发的全方位升级
前端·爬虫·scrapy·html
爱上好庆祝2 小时前
svg图片
前端·css·学习·html·css3
橘子编程2 小时前
JavaScript与TypeScript终极指南
javascript·ubuntu·typescript
王夏奇2 小时前
python中的__all__ 具体用法
java·前端·python
叫我一声阿雷吧3 小时前
JS 入门通关手册(45):浏览器渲染原理与重绘重排(性能优化核心,面试必考
javascript·前端面试·前端性能优化·浏览器渲染·浏览器渲染原理,重排重绘·reflow·repaint
大家的林语冰3 小时前
《前端周刊》尤大开源 Vite+ 全家桶,前端工业革命启动;尤大爆料 Void 云服务新产品,Vite 进军全栈开发;ECMA 源码映射规范......
前端·javascript·vue.js
jiayong233 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习