Vite 6.0 发布了!
2024 年 11 月 26 日

今天,我们在 Vite 的发展历程中又迈出了重要的一步。Vite 团队、贡献者以及生态系统合作伙伴非常激动地宣布 Vite 6 正式发布。
这一年发生了许多大事。Vite 的采用率持续增长,自一年前 Vite 5 发布以来,npm 每周下载量已从 750 万次跃升至 1700 万次。Vitest 不仅越来越受到用户青睐,也开始形成其独立的生态系统。例如,Storybook 现在拥有由 Vitest 支持的全新测试功能。
新的框架也加入了 Vite 生态系统,包括 TanStack Start、One、Ember 等等。Web 框架正以越来越快的速度进行创新。你可以看看 Astro、Nuxt、SvelteKit、Solid Start、Qwik City、RedwoodJS、React Router 等社区伙伴所做的改进,名单还在不断增加。
OpenAI、Google、Apple、Microsoft、NASA、Shopify、Cloudflare、GitLab、Reddit、Linear 等众多公司都在使用 Vite。两个月前,我们开始整理一份使用 Vite 的公司名单。我们很高兴看到许多开发者提交 PR 将他们的公司添加到列表中。很难相信,自 Vite 迈出第一步以来,我们共同构建的生态系统已经成长了这么多。

加速 Vite 生态系统
上个月,社区齐聚第三届 ViteConf,该会议再次由 StackBlitz 主办。这是规模最大的一次 Vite 大会,来自生态系统的开发者们有着广泛的代表性。在众多公告中,尤雨溪(Evan You)宣布了 VoidZero,这是一家致力于为 JavaScript 生态系统构建开源、高性能且统一的开发工具链的公司。VoidZero 背后是 Rolldown 和 Oxc,他们的团队正在取得重大进展,使其能够迅速被 Vite 采用。观看 Evan 的主题演讲,了解更多关于 Vite 基于 Rust 的未来规划。
Stackblitz 推出了 bolt.new,这是一个结合了 Claude 和 WebContainers 的 Remix 应用,让你能够通过提示词(prompt)来编辑、运行和部署全栈应用。Nate Weiner 宣布了 One,这是一个由 Vite 驱动的、用于 Web 和原生应用的全新 React 框架。Storybook 展示了他们最新的由 Vitest 驱动的 测试功能。还有更多精彩内容。我们鼓励大家观看 全部 43 场演讲。演讲者们投入了大量精力来分享各自项目的最新动态。
Vite 还更新了落地页,并启用了简洁的新域名。今后,请将你的 URL 更新指向新的 vite.dev 域名。新设计和实现由 VoidZero 完成,采用了与他们官网相同的制作团队。特别鸣谢 Vicente Rodriguez 和 Simon Le Marchant。
Vite 的下一个重大版本已经到来
Vite 6 是自 Vite 2 以来最重要的主要版本更新。我们渴望与生态系统合作,通过新的 API 继续扩展我们共享的公共设施,并一如既往地提供一个更加完善的基础设施。
快速链接
如果你是 Vite 的新手,我们建议先阅读开始使用和功能介绍指南。
我们要感谢超过 1000 名 Vite 核心贡献者,以及 Vite 插件、集成、工具和翻译的维护者与贡献者,他们帮助我们打造了这个新的重大版本。我们邀请你参与其中,帮助我们为整个生态系统改进 Vite。了解更多信息,请查看我们的贡献指南。
要开始参与,我们建议协助分类 Issue、评审 PR、基于开放 Issue 发送失败测试的 PR,并在 Discussions 和 Vite Land 的 帮助论坛中为他人提供支持。如果你想与我们交流,请加入我们的 Discord 社区并在 #contributing 频道打个招呼。
获取有关 Vite 生态系统和 Vite 核心的最新消息,请关注我们的 Bluesky、X 或 Mastodon。
开始使用 Vite 6
你可以使用 pnpm create vite 快速创建一个首选框架的 Vite 应用,或者在 vite.new 在线体验 Vite 6。你也可以运行 pnpm create vite-extra 来获取其他框架和运行时(Solid, Deno, SSR 和库入门)的模板。当你运行 create vite 时,在 Others 选项下也可以找到 create vite-extra 模板。
Vite 起步模板旨在作为测试 Vite 与不同框架配合使用的练习场。构建实际项目时,你应该参考各框架官方推荐的起步工具。create vite 也提供了快捷方式来设置某些框架的官方起步工具,如 create-vue、Nuxt 3、SvelteKit、Remix、Analog 和 Angular。
Node.js 支持
Vite 6 支持 Node.js 18、20 和 22+,这与 Vite 5 类似。Node.js 21 的支持已被移除。Vite 会在 Node.js 旧版本达到 EOL(生命周期结束)后取消对其的支持。Node.js 18 的 EOL 时间是 2025 年 4 月底,届时我们可能会发布一个新的重大版本以提升所需的 Node.js 最低版本。
实验性环境 API (Environment API)
借助全新的环境 API,Vite 变得更加灵活。这些新 API 将允许框架作者提供更接近生产环境的开发体验,并使生态系统能够共享新的构建模块。如果你正在构建 SPA,一切都不会改变;当你使用具有单一客户端环境的 Vite 时,一切都像以前一样工作。即使是对于自定义 SSR 应用,Vite 6 也是向后兼容的。环境 API 的主要受众是框架作者。
对于感到好奇的终端用户,Sapphi 撰写了一篇非常出色的环境 API 介绍指南。这是一个了解我们为何致力于让 Vite 更具灵活性的绝佳起点。
如果你是框架作者或 Vite 插件维护者,想要利用这些新 API,可以在 环境 API 指南中了解更多信息。
我们要感谢所有参与定义和实现这些新 API 的人们。这一切始于 Vite 2 采用了由 Rich Harris 和 SvelteKit 团队开创的非打包式 SSR 开发方案。随后,Vite 的 SSR 转换功能解锁了 Anthony Fu 和 Pooya Parsa 创建 vite-node 并改进 Nuxt 开发 SSR 体验的能力。Anthony 后来利用 vite-node 来驱动 Vitest,而 Vladimir Sheremet 作为 Vitest 维护者持续对其进行改进。2023 年初,Vladimir 开始致力于将 vite-node 合并到 Vite 核心中,我们在一年后的 Vite 5.1 中将其作为运行时 API 发布。来自生态系统合作伙伴的反馈(特别感谢 Cloudflare 团队)促使我们对 Vite 的环境进行了更雄心勃勃的重构。你可以在 Patak 的 ViteConf 24 演讲中了解更多背后的故事。
Vite 团队的所有成员都参与了定义这个新 API 的工作,它是在参考了生态系统中许多项目的反馈后共同设计的。感谢所有参与的人!如果你正在基于 Vite 构建框架、插件或工具,我们鼓励你参与进来。这些新 API 目前是实验性的。我们将与生态系统合作,评估这些 API 的实际使用情况,并在下一个重大版本中将其稳定下来。如果你有任何疑问或想提供反馈,这里有一个 公开的 GitHub 讨论区。
主要变更
resolve.conditions的默认值变更- JSON 字符串化处理
- HTML 元素中资产引用的扩展支持
- postcss-load-config 更新
- Sass 现在默认使用现代 API
- 支持在库模式下自定义 CSS 输出文件名
- 以及更多仅影响少数用户的变更
此外,还有一个新的破坏性变更页面,列出了 Vite 中所有计划中、考虑中和过去的变更。
迁移到 Vite 6
对于大多数项目,更新到 Vite 6 应该非常简单,但我们建议在升级前查阅详细的迁移指南。
完整的变更列表请查阅 Vite 6 更新日志。
鸣谢
Vite 6 是我们的社区贡献者、下游维护者、插件作者和 Vite 团队长时间努力工作的成果。我们感谢赞助 Vite 开发的个人和公司。Vite 由 VoidZero 与 StackBlitz、Nuxt Labs 和 Astro 合作推出。特别鸣谢 Vite GitHub 赞助者和 Vite Open Collective 的赞助者们。
