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 所做的改进,以及等等。
Vite 被 OpenAI、Google、Apple、Microsoft、NASA、Shopify、Cloudflare、GitLab、Reddit、Linear 等许多公司使用。两个月前,我们开始了一个使用 Vite 的公司列表。我们很高兴看到许多开发人员向我们发送 PR,将他们的公司添加到列表中。很难相信我们共同构建的生态系统自 Vite 迈出第一步以来已经发展了多少。
加速 Vite 生态系统
上个月,社区聚集在一起参加由StackBlitz再次主办的第三届ViteConf。这是规模最大的 Vite 会议,生态系统中各种构建者都有广泛的代表性。在其他公告中,Evan You 宣布了VoidZero,这是一家致力于为 JavaScript 生态系统构建开源、高性能和统一的开发工具链的公司。VoidZero 是 Rolldown 和 Oxc 的幕后推手,他们的团队正在取得重大进展,使它们迅速准备好被 Vite 采用。观看 Evan 的主题演讲,了解有关 Vite 由 Rust 提供支持的未来的下一步措施。
Stackblitz 推出了bolt.new,这是一个 Remix 应用程序,它结合了 Claude 和 WebContainers,让您可以提示、编辑、运行和部署全栈应用程序。Nate Weiner 宣布了 One,这是一个新的由 Vite 提供支持的 React 框架,适用于 Web 和原生。Storybook 展示了他们最新的 Vitest 驱动的测试功能。还有更多。我们鼓励您观看所有 43 个讲座。演讲者付出了巨大的努力与我们分享每个项目的情况。
Vite 还获得了一个全新的着陆页和一个干净的域名。您应该更新您的 URL 以指向新的 vite.dev 域名。新的设计和实施由 VoidZero 完成,与制作其网站的人员相同。向 Vicente Rodriguez 和 Simon Le Marchant 致敬。
下一个 Vite 主要版本就在这里
Vite 6 是自 Vite 2 以来最重要的主要版本。我们渴望与生态系统合作,通过新的 API 以及一如既往的更完善的基础来扩展我们的共同领域。
快速链接
如果您是 Vite 的新手,我们建议首先阅读入门和功能指南。
我们要感谢超过 1K 对 Vite Core 的贡献者 以及 Vite 插件、集成、工具和翻译的维护者和贡献者,他们帮助我们制作了这个新的主要版本。我们邀请您参与进来,帮助我们为整个生态系统改进 Vite。在我们的贡献指南中了解更多信息。
要开始使用,我们建议帮助问题分类,审查 PR,基于开放问题发送失败测试 PR,并在讨论区和 Vite Land 的帮助论坛中支持他人。如果您想与我们交谈,请加入我们的Discord 社区,并在#contributing 频道上打个招呼。
有关 Vite 生态系统和 Vite Core 的最新消息,请关注我们的Bluesky、X 或 Mastodon。
Vite 6 入门
您可以使用 pnpm create vite
快速搭建一个具有您首选框架的 Vite 应用程序,或者使用 vite.new 在线使用 Vite 6。您也可以运行 pnpm create vite-extra
来访问来自其他框架和运行时的模板(Solid、Deno、SSR 和库启动器)。当您在 Others
选项下运行 create vite
时,也可以使用 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
Vite 通过新的环境 API 变得更加灵活。这些新的 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 的 Dev SSR 故事。Anthony 随后使用 vite-node 为 Vitest 提供支持,而 Vladimir Sheremet 作为他维护 Vitest 工作的一部分,不断对其进行改进。在 2023 年初,Vladimir 开始努力将 vite-node 上游到 Vite Core,我们一年后在 Vite 5.1 中将其作为运行时 API 发布。来自生态系统合作伙伴的反馈(特别感谢 Cloudflare 团队)促使我们对 Vite 的环境进行了更雄心勃勃的重新设计。您可以在 Patak 的 ViteConf 24 演讲 中了解更多关于这个故事的信息。
Vite 团队的每个人都参与了定义新的 API,该 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 Sponsors 和 Vite 的 Open Collective 上的赞助商。