今天看了一下vite的仓库,突然发现正式版就发布了,前两天看还是beta版本呢,Vite7就这样悄悄发布了? 我用AI帮忙总结了一下本次Vite7的核心升级点。
Vite7 核心更改
1. Node.js支持变更
- 要求使用Node.js 20.19+或22.12+
- 不再支持Node.js 18(已于2025年4月底达到EOL)
- 新的Node.js版本要求使Vite能够以纯ESM格式发布,同时保持对CJS模块通过
require
调用的兼容性
2. 浏览器兼容性目标调整
- 默认浏览器目标从
'modules'
更改为'baseline-widely-available'
- 支持的最低浏览器版本更新:
- Chrome: 87 → 107
- Edge: 88 → 107
- Firefox: 78 → 104
- Safari: 14.0 → 16.0
- 这一变化使浏览器兼容性更具可预测性
3. Environment API增强
- 保留了Vite 6中引入的实验性Environment API
- 新增
buildApp
钩子,使插件能够协调环境的构建过程 - 为框架提供了更强大的环境API
4. Rolldown集成
- 引入基于Rust的下一代打包工具Rolldown
- 通过
rolldown-vite
包可替代默认的vite包 - 未来Rolldown将成为Vite的默认打包工具
- 能显著减少构建时间,尤其对大型项目
5. Vite DevTools增强
- 通过VoidZero与NuxtLabs合作开发
- 为所有基于Vite的项目和框架提供更深入的调试与分析功能
6. 废弃功能移除
- 移除了Sass的旧版API支持
- 移除了
splitVendorChunkPlugin
7. Vitest支持
- Vitest 3.2开始支持Vite 7.0
这些更改使Vite在性能、开发体验和浏览器兼容性方面都有了显著提升。 下面是Vite博客原文
Vite 7.0 发布了!
2025年6月24日
我们很高兴与大家分享 Vite 7 的发布!从 Evan You 向 Vite 仓库提交第一次 commit 至今已经过去 5 年了,当时没有人能预料到前端生态会发生如此巨大的变化。如今,大多数现代前端框架和工具正在协同工作,构建在 Vite 共享的基础设施之上。通过更高层次的共享,它们能够以更快的速度进行创新。Vite 现在每周被下载 3100 万次,在上次重大版本发布后的七个月内增长了 1400 万次下载量。
今年,我们将迈出几个重要的步伐。首先,ViteConf 将首次以线下形式举办!Vite 生态系统将于 10 月 9-10 日在阿姆斯特丹齐聚一堂!本次活动由 JSWorld 联合 Bolt、VoidZero 和 Vite 核心团队共同组织!我们已经成功举办过三届精彩的ViteConf 线上活动,现在迫不及待地想要与大家面对面交流。欢迎查看演讲嘉宾名单并前往 ViteConf 官网 获取门票信息。
此外,VoidZero 继续在构建面向 JavaScript 生态系统的开源统一开发工具链的使命中取得重大进展。在过去一年里,VoidZero 团队一直在开发 Rolldown —— 一个基于 Rust 的下一代打包工具(bundler),作为现代化 Vite 核心的更广泛努力的一部分。你现在就可以通过使用 rolldown-vite
包来体验基于 Rolldown 的 Vite,替代默认的 vite 包。它是一个即插即用的替代方案,未来 Rolldown 将成为 Vite 的默认打包工具。切换后可以显著减少你的构建时间,尤其是对于较大的项目而言。更多信息请参阅 Rolldown-Vite 宣布博文 和我们的 迁移指南。
通过 VoidZero 与 NuxtLabs 的合作,Anthony Fu 正在致力于开发 Vite DevTools。它将为所有基于 Vite 的项目和框架提供更深入且富有洞察力的调试与分析功能。你可以阅读 VoidZero 与 NuxtLabs 联手打造 Vite DevTools 的博客文章 了解更多信息。
快速链接:
使用 vite.new 在线体验 Vite 7,或者通过运行 pnpm create vite
在本地使用你偏好的框架搭建 Vite 项目。更多信息请查看入门指南。
我们诚邀你加入我们,帮助我们改进 Vite(加入超过 1.1K 位 Vite Core 贡献者)、我们的依赖项、插件以及生态系统中的项目。了解更多信息,请参阅我们的贡献指南。
一个好的入门方法包括:整理问题、审阅 PR、基于未解决问题提交测试 PR,或在 讨论区 以及 Vite Land 的 帮助论坛 中为他人提供帮助。如有任何疑问,欢迎加入我们的 Discord 社区,并在 #contributing 频道 中与我们交流。
通过关注我们在 Bluesky、X(原 Twitter) 或 Mastodon,保持更新并与更多基于 Vite 构建的开发者建立联系。
Node.js 支持
Vite 现在要求使用 Node.js 20.19+ 或 22.12+。由于 Node.js 18 已于 2025 年 4 月底达到生命周期终点(EOL),我们已不再支持该版本。
我们要求使用这些新的 Node.js 版本范围,以确保 Node.js 可以无需启用标志即可支持 require(esm)
。这使我们能够仅以 ESM 格式发布 Vite 7.0,同时不会阻止 CJS 模块通过 require
调用 Vite 的 JavaScript API。有关当前 ESM 在生态系统中的发展状况的详细分析,请查看 Anthony Fu 的文章 《迈向纯 ESM》。
默认浏览器兼容性目标已更改为 Baseline Widely Available {#default-browser-target-changed-to-baseline-widely-available}
Baseline 为我们提供了明确的信息,指出了哪些 Web 平台特性在当今主流浏览器中可用。Baseline Widely Available,表示该功能已经十分成熟,可在多种设备和浏览器版本中正常工作,并且在各浏览器中至少已支持 30 个月。
在 Vite 7 中,默认浏览器目标将从 'modules'
更改为新的默认值:'baseline-widely-available'
。每当我们发布一个重大版本时,所支持的浏览器列表都会更新,以匹配与“Baseline Widely Available”特性兼容的最低浏览器版本。Vite 7.0 中 build.target
的默认浏览器值变化如下:
- Chrome 87 → 107
- Edge 88 → 107
- Firefox 78 → 104
- Safari 14.0 → 16.0
这一变化为未来版本的浏览器兼容性带来了更高的可预测性。
Vitest
对于 Vitest 用户而言,Vite 7.0 从 Vitest 3.2 开始得到支持。你可以阅读 Vitest 3.2 发布博客,了解更多关于 Vitest 团队如何持续改进 Vite 测试功能的内容。
Environment API
Vite 6 是自 Vite 2 以来最具意义的一次重大发布,它通过 全新的实验性 Environment API 引入了多项新功能。我们暂时将这些新 API 保持为实验性状态,以便生态系统逐步评估它们在各类项目中的适用性并提供反馈。如果你正在基于 Vite 构建项目,我们鼓励你尝试使用这些新 API,并通过此开放讨论话题 向我们提供你的使用反馈。
在 Vite 7 中,我们新增了一个 buildApp
钩子,使插件能够协调环境的构建过程。详情请参阅面向框架的 Environment API 指南。
我们要感谢那些一直在测试新 API 并帮助我们稳定新功能的团队。例如,Cloudflare 团队宣布了其 Cloudflare Vite 插件的 1.0 版本发布,并正式支持 React Router v7。他们的插件展示了 Environment API 在运行时提供者方面的潜力。要了解更多关于他们的实现方式和未来计划,请查看文章 “Just use Vite”… with the Workers runtime。
迁移到 Vite 7
从 Vite 6 升级到 Vite 7 应该是一次平滑的体验。我们移除了已弃用的功能,例如 Sass 的旧版 API 支持以及 splitVendorChunkPlugin
,这些改动不会影响你的项目。我们仍然建议你在升级前查看详细的迁移指南。
所有变更的完整列表请见 Vite 7 更新日志。
致谢
Vite 7 由 Vite 团队 在广大贡献者、下游维护者和插件开发者的帮助下精心打造而成。我们特别感谢 sapphi-red,以表彰他在 rolldown-vite
和本次发布中做出的出色工作。Vite 由 VoidZero 打造,并得到了 Bolt 和 Nuxt Labs 的合作支持。我们还要感谢我们的赞助商,包括 Vite 的 GitHub 赞助计划 和 Vite 的 Open Collective 页面 上的支持者。