现状:Vite 的双引擎困境
Vite 之所以快,是因为它把工作分给了两个工具:
- 开发态:esbuild 做依赖预构建(Go 编写,极快),浏览器原生 ESM 直接加载源码;
- 生产态:Rollup 做打包(JS 编写,插件生态丰富,但受限于单线程 V8)。
问题在于两个引擎的行为不完全一致,某些插件在 dev 正常、build 报错;而且 Rollup 在超大项目上构建时间常常以分钟计。
Rolldown:用 Rust 重写 Rollup
Rolldown 是 Vite 团队用 Rust 编写的打包器,目标很直接:兼容 Rollup 的插件与配置接口,但性能高一个数量级,并统一 dev/build 两条链路。
npm i -D vite@latest rolldown-vite@latest// vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig({
plugins: [react()],
build: {
// 使用 Rolldown 作为打包器
rollupOptions: {
output: {
// 更激进的 chunk 拆分
advancedChunks: {
groups: [
{ name: "react", test: /node_modules[\\/](react|react-dom)/ },
{ name: "vendor", test: /node_modules/ },
],
},
},
},
},
});关键收益:
- 构建速度:Rust + 多线程,大型项目的生产构建通常能快 3~10 倍;
- 内存占用:不再受 V8 堆上限限制,超大仓库不再 OOM;
- 行为一致:dev 和 build 走同一套模块解析与转换逻辑,减少“本地好使线上报错”。
实战:分析一次构建
# 生成构建分析报告
npx vite build --mode production && npx vite-bundle-visualizer// 自定义插件:统计模块数量
import type { Plugin } from "vite";
export function moduleStats(): Plugin {
let count = 0;
return {
name: "module-stats",
transform(_code, id) {
if (id.includes("node_modules")) count += 1;
return null;
},
buildEnd() {
console.log(`[stats] 共处理 ${count} 个依赖模块`);
},
};
}由于 Rolldown 兼容 Rollup 插件 API,绝大多数现有插件可以直接复用,迁移成本远低于换一套构建体系。
配合 Vite 7 的其他新能力
export default defineConfig({
// Environment API:为不同目标(client/ssr/edge)配置独立环境
environments: {
client: {
build: { outDir: "dist/client" },
},
ssr: {
build: { outDir: "dist/server", ssr: true },
},
},
// 更快的冷启动:持久化预构建缓存
optimizeDeps: {
holdUntilCrawlEnd: false,
},
});Environment API 是 Vite 6/7 引入的重要抽象,让“一次配置、多端产出”成为一等公民,配合 Rolldown 可以并行构建多个产出目标。
迁移检查清单
{
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"build:analyze": "vite build --debug"
}
}- 先在项目里并行安装
rolldown-vite,通过 alias 覆盖vite,跑一次构建对比产物; - 检查自定义插件是否用了 Rollup 内部未公开 API(这类最容易不兼容);
- 对比 sourcemap 与产物体积,确认没有引入重复依赖;
- CI 上替换后,观察构建时长与缓存命中率。
小结
前端构建正在进入“Rust 化”阶段:esbuild、SWC、Rspack、Biome、Rolldown、Oxc 形成一个完整的工具链矩阵。Vite 7 + Rolldown 的组合,意味着开发者几乎不用改配置就能享受数量级的性能提升——这可能是近几年性价比最高的一次升级。
评论 0
还没有评论,来说两句吧。