下面给你系统性拆解 Vite 8 相比 Vite 7 的所有关键更新(架构级 + 功能级 + 行为变更) ,我会按“重要程度”+“是否破坏性”来讲,方便你快速理解升级价值👇
🚀 一、最核心变化(架构级,最重要)
1️⃣ 单一构建引擎:Rolldown 取代 esbuild + Rollup
👉 这是 Vite 8 最大变化(可以说是 Vite 2 以来最重大的改动)
Vite 7(旧架构)
- dev:esbuild(快)
- build:Rollup(稳定)
- ❗问题:两套工具链 → 行为不一致
Vite 8(新架构)
-
全部统一为:
- Rolldown(Rust 写的 bundler)
-
- Oxc(JS 编译器)
-
- Lightning CSS(CSS 处理)
📌 带来的变化:
- dev / build 行为完全一致
- 工具链统一(解析 / transform / minify 同一套)
- 插件执行路径一致
👉 官方明确说明这是“统一整个工具链” (vitejs)
2️⃣ 构建性能大幅提升(质变级)
原因
- Rust(Rolldown)替代 JS 工具链
- Oxc 比 Babel / esbuild 更快
- 更强 tree-shaking(语义分析)
3️⃣ Dev / Build 行为一致性(非常关键)
Vite 7 最大坑:
“开发能跑,build 后炸”
Vite 8:
- 同一个 bundler
- 同一解析逻辑
- 同一插件执行链
👉 这个对大型项目非常重要
🧠 二、功能级新增能力
4️⃣ 内置 tsconfig paths 支持
以前:
import xxx from "@/components/xxx"
需要:
- vite-tsconfig-paths 插件
现在:
- ✅ 内置支持(开箱即用) (gihyo.jp)
5️⃣ 支持 emitDecoratorMetadata
👉 TS 装饰器元数据支持
适用于:
- NestJS
- class-validator
- IoC 容器
👉 以前需要额外处理,现在内建支持 (gihyo.jp)
6️⃣ 更强 Tree Shaking(基于 Oxc)
- 语义级分析(不是简单 AST)
- 更精准 dead code elimination
👉 结果:
- bundle 更小
- side-effect 判断更准确
7️⃣ CSS 处理升级(Lightning CSS)
变化:
- 内置 CSS 压缩(不再依赖 PostCSS 插件)
- 更快 + 更标准
8️⃣ React 插件变化(重要)
@vitejs/plugin-react- 使用 Oxc 替代 Babel(部分能力)
👉 带来:
- 更快刷新(Fast Refresh)
- 编译更快
(但某些 Babel 插件可能受影响)
⚙️ 三、默认行为变化(有破坏性)
9️⃣ 浏览器兼容目标提升
默认 target 更新:
| 浏览器 | Vite 7 | Vite 8 |
|---|---|---|
| Chrome | 107 | 111 |
| Firefox | 104 | 114 |
| Safari | 16.0 | 16.4 |
👉 意味着:
- 更现代 JS
- 更少 polyfill
- ❗老浏览器兼容性下降 (vitejs)
🔟 Node 版本要求提升
👉 Vite 8 要求:
- Node 20+(或更高)
(社区反馈) (Reddit)
11️⃣ 配置项变化(Rollup → Rolldown)
部分字段变化:
// Vite 7
build.rollupOptions
// Vite 8
build.rolldownOptions
👉 需要改配置
12️⃣ 安装体积变大
原因:
- Rolldown binary
- Lightning CSS
👉 大约增加:
- +15MB (Reddit)
🧩 四、生态 &迁移相关
13️⃣ 插件兼容层(很关键)
👉 Vite 8 做了兼容:
- Rollup 插件基本可用
- 自动转换层
👉 但:
- 某些边缘插件可能失效
14️⃣ 提供渐进迁移方案
官方推荐:
方式1:直接升级
npm install vite@8
方式2(推荐大项目)
vite 7 → rolldown-vite → vite 8
👉 可以拆分风险 (vitejs)
📊 总结对比(核心差异)
| 维度 | Vite 7 | Vite 8 |
|---|---|---|
| 架构 | esbuild + Rollup | Rolldown(统一) |
| 性能 | 快 | 🚀 极快(10x级) |
| 一致性 | dev/build 不一致 | ✅ 完全一致 |
| TS 路径 | 插件 | 内置 |
| 装饰器 | 手动 | 内置 |
| CSS | PostCSS | Lightning CSS |
| Tree-shaking | 一般 | 更强 |
| Node 要求 | 16/18 | 20+ |
| 浏览器支持 | 较旧 | 更现代 |
🧠 一句话总结
👉 Vite 8 本质不是“小升级”,而是“底层重写 + 工具链统一”
可以理解为:
从「拼装工具」→「一体化构建平台」