打包时代变天了,Rolldown-Vite 带着 Rust 来抢活!

本文来自 voidzero.dev/posts/annou...

Rolldown 驱动的 Vite:现在即可尝试!

TL;DR

立即尝试由 Rolldown 驱动的 Vite,只需将项目中的 vite 替换为 rolldown-vite 包即可。它是完全可替代的替代方案,未来 Rolldown 将成为 Vite 的默认打包器。尤其在大型项目中切换后可显著减少构建时间。欢迎联系我们了解实际生产场景!


背景介绍

过去一年中,我们一直在开发 Rolldown ------ 一个基于 Rust 的下一代打包器,这是现代化 Vite 核心的更大计划的一部分。

除了 Rolldown,我们还开发了 Oxc,一套高性能 JavaScript 工具集,包括:

  • 解析器(Parser)
  • 转换器(Transformer)
  • 解析器(Resolver)
  • 压缩器(Minifier)
  • Linter(已上线)
  • Formatter(即将推出)

Oxc 是 Rolldown 的基础组件,负责高效处理 JavaScript 和 TypeScript。


功能已对齐,立即试用

我们很高兴地宣布:由 Rolldown 驱动的 Vite 已实现与现有 Vite 初步的功能对齐。你现在就可以像往常一样替换使用,并享受技术预览版带来的性能提升。

在早期用户的帮助下,我们已在各种项目中(从简单项目到企业级应用)测试 rolldown-vite。结果令人惊叹:

  • 构建时间加速 3x 到 16x
  • 构建内存消耗最多减少 100x

详见下方的 "实际效果" 一节。


快速开始

在已有 Vite 项目中,只需在 package.json 中通过别名替换:

perl 复制代码
{
  "dependencies": {
    "vite": "npm:rolldown-vite@latest"
  }
}

如果你使用的是 VitePress 或其他以 Vite 作为 peer 依赖的元框架,可以使用覆盖配置:

perl 复制代码
{
  "overrides": {
    "vite": "npm:rolldown-vite@latest"
  }
}

支持工具:npmpnpmyarnbun

替换后,你可以像平常一样使用 Vite,同时享受 Rolldown 带来的构建性能提升。


为什么是单独包发布?

Rolldown 当前通过 rolldown-vite 独立包发布:

  • 快速迭代开发
  • 收集反馈与问题
  • 不影响现有用户稳定性

一旦稳定,相关改动将合并进 Vite 主包,rolldown-vite 将被弃用。

注意:

  • 主版本号、次版本号 与 Vite 保持一致
  • 补丁版本可能包含破坏性变更(开发仍在进行中)

查看变更日志获取最新信息。


兼容性保证

兼容性是我们首要任务。

我们:

  • 基于 Vite 生态系统的 CI 创建了分支
  • rolldown-vite 上运行测试
  • 绝大多数框架与插件已通过测试

注意:

  • 个别框架/高级用例仍可能存在兼容性差异
  • 强烈建议查阅 Rolldown 迁移指南

如遇问题,请提交 Issue,以帮助我们优化整个生态。


不再需要 esbuild!

目前稳定版 Vite 依赖 esbuild 进行:

  • 转换与压缩生产构建代码
  • 开发服务器部分功能

但在 rolldown-vite 中:

  • 所有转换和压缩操作由 Oxc 完成
  • 构建性能更优
  • 不再需要额外安装 esbuild(除非某些插件仍依赖)

我们正在与插件/框架作者合作,使其支持 Oxc。


插件作者请注意

无论你是 Vite 还是 Rollup 插件作者,现在就可以开始测试你的插件:

  • 多数插件可直接兼容
  • 少部分插件需做兼容性/性能调整

查看插件作者指南了解详情。


实际效果案例

尽管 rolldown-vite 仍处开发阶段,但已有多个真实项目获得显著提速:

项目/公司 构建时间对比 内存使用
GitLab 2.5 分 → 40 秒 内存降低 100x
Excalidraw 22.9 秒 → 1.4 秒(提升 16 倍) ---
PLAID Inc. 80 秒 → 5 秒(提升 16 倍) ---
Appwrite 12 分钟+ → 3 分钟 内存降低 4 倍
Particl 1 分钟+ → 6 秒(Vite 提升 10x;对比 Next.js 提升 29x) ---

更多信息与案例详见仓库:vitejs/rolldown-vite-perf-wins

趣闻:你正在阅读的这篇博客正是由 VitePress + Rolldown 构建,仅用 1.8 秒完成生产构建(部署在 Netlify)。


下一步计划

Vite 以其原生 ESM 非打包开发服务器著称,带来极快的启动与反馈体验。

但这种模式在 大型/企业级项目 中存在一定局限。

为此我们正在开发 开发服务器的完整打包模式,目标:

  • 保持中小项目启动速度
  • 大幅提升大型项目的开发体验

同时,我们还将持续将 Vite 核心"Rust 化",以减少通信开销并提升整体性能。


Rolldown 集成路线图

阶段 说明
第一阶段(当前) 发布 rolldown-vite 独立包供早期用户试用与反馈。
第二阶段 稳定后将合并进 Vite 主仓库,并新增可选的开发全打包模式,rolldown-vite 将弃用。
第三阶段 全打包模式成为 Vite 默认行为。

我们预计每阶段持续数月,具体节奏取决于:

  • 社区反馈
  • 实际使用情况
  • 稳定性与兼容性表现

快来试试!

我们鼓励你 现在就尝试 rolldown-vite 并给予反馈!

如遇任何问题(功能缺失、错误提示不明确、性能下降等),请在 rolldown-vite 仓库 提交,而非主仓库。

若你希望实时讨论问题,欢迎加入 Rolldown Discord 社区!


如需我将此内容继续转为中文博客模板或添加使用截图示意,请告诉我。

相关推荐
云边有个稻草人18 分钟前
智启未来:当知识库遇见莫奈的调色盘——API工作流重构企业服务美学
前端·数据库
仟濹5 小时前
【HTML】基础学习【数据分析全栈攻略:爬虫+处理+可视化+报告】
大数据·前端·爬虫·数据挖掘·数据分析·html
小小小小宇6 小时前
前端WebWorker笔记总结
前端
小小小小宇7 小时前
前端监控用户停留时长
前端
小小小小宇7 小时前
前端性能监控笔记
前端
烛阴7 小时前
Date-fns教程:现代JavaScript日期处理从入门到精通
前端·javascript
全栈小57 小时前
【前端】Vue3+elementui+ts,TypeScript Promise<string>转string错误解析,习惯性请出DeepSeek来解答
前端·elementui·typescript·vue3·同步异步
穗余7 小时前
NodeJS全栈开发面试题讲解——P6安全与鉴权
前端·sql·xss
穗余9 小时前
NodeJS全栈开发面试题讲解——P2Express / Nest 后端开发
前端·node.js
航Hang*9 小时前
WEBSTORM前端 —— 第3章:移动 Web —— 第4节:移动适配-VM
前端·笔记·edge·less·css3·html5·webstorm