从 Vite 4 到 Vite 8:历代 Major 版本演进全记录与升级避坑指南

4 阅读2分钟

🚀 省流助手(版本精髓):

  • Vite 4:Rollup 3 时代,引入 SWC
  • Vite 5纯 ESM 时代,告别 Node 14/16。
  • Vite 6Environment API 实验开启,发力 SSR。
  • Vite 7Environment API 稳定,Sass 现代 API 强制化。
  • Vite 8Rolldown 统一天下,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。

三、 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 环境进行全量回归测试,观察产物是否有微小差异。