🚀 省流助手(版本精髓):
- Vite 4:Rollup 3 时代,引入 SWC。
- Vite 5:纯 ESM 时代,告别 Node 14/16。
- Vite 6:Environment API 实验开启,发力 SSR。
- Vite 7:Environment API 稳定,Sass 现代 API 强制化。
- Vite 8:Rolldown 统一天下,Rust 原生化大成。
一、 Vite 4 → Vite 5:彻底拥抱 ESM
Vite 5 的核心目标是瘦身与现代化。
-
重大变更:
- Node.js 18+ :正式放弃已过期的 Node 14/16。
- CJS 弃用:Vite 的 Node API 不再提供 CommonJS 版本。
-
不兼容更改:
- 如果你还在
vite.config.ts里使用require(),必须重构为import。 resolve.browserField默认值变更,影响部分旧版 npm 包的解析。
- 如果你还在
二、 Vite 5 → Vite 6:全栈架构的雏形
Vite 6 是为了解决“多端运行”痛点而生的一个关键跳板。
-
重大变更:
- Environment API (实验性) :首次提出将 Client、SSR、Workerd 配置解耦。
- Node.js 20+ :对运行环境提出了更高要求。
-
不兼容更改:
- Sass 默认值:默认使用现代 JS API(Sass 团队推荐),旧的
legacy渲染模式开始报警告。 - JSON 导出:不再支持从 JSON 文件中进行具名导出(Named Exports),只能 Default Export。
- Sass 默认值:默认使用现代 JS API(Sass 团队推荐),旧的
三、 Vite 6 → Vite 7:标准化与生产力提升
Vite 7 是一个承上启下的“打磨”版本,重点在于稳定性和移除历史包袱。
-
重大变更:
- Environment API 稳定:正式成为官方推荐的多端处理方案。
- 构建性能优化:通过改进依赖扫描逻辑,进一步缩短冷启动时间。
-
不兼容更改:
- Sass 遗产清理:彻底移除对 Sass 旧版 API 的支持。
- CSS 默认压缩:开始尝试将 Lightning CSS 作为可选的快速压缩方案。
四、 Vite 7 → Vite 8:Rolldown 的次元封神
这是 Vite 诞生以来最激动人心的版本,它从根本上改变了“血液”。
-
重大变更:
- Rolldown 引擎:用基于 Rust 的 Rolldown 替换了 esbuild + Rollup 的组合。开发与生产环境完全对齐。
- VoidZero 集成:作为全栈工具链的一员,原生集成 Oxc 和 Lightning CSS。
-
不兼容更改:
- Node.js 20.19+ / 22.12+ :必须使用最新的 LTS 版本。
- 插件 API 微调:部分 Rollup 特有的底层 Hook 在 Rolldown 中可能存在细微差异。
- 配置项迁移:部分
esbuild相关的配置被统一到了environments下的通用配置中。
💡 总结:你应该如何升级?
- 如果你在 Vite 4/5:建议先升到 Vite 6,重点解决 ESM 兼容性和 Sass 警告。
- 如果你在 Vite 6/7:直接冲向 Vite 8!享受 Rolldown 带来的 30 倍构建提速,但务必在 CI 环境进行全量回归测试,观察产物是否有微小差异。