今天,我们在Vite的发展历程中又迈出了一大步。Vite的团队[2]、贡献者[3]以及生态系统合作伙伴都很高兴地宣布Vite 6版本发布了。
这是成果丰硕的一年。Vite的采用率持续增长,自一年前Vite 5发布以来,每周的npm下载量从750万次跃升至1700万次。Vitest[4]不仅越来越受用户青睐,而且还开始形成自己的生态系统。例如,Storybook[5]拥有了由Vitest提供支持的新测试功能。
新的框架也加入了Vite生态系统,包括TanStack Start[6]、One[7]、Ember[8]等等。Web框架的创新步伐日益加快。你可以查看一下Astro[9]、Nuxt[10]、SvelteKit[11]、Solid Start[12]、Qwik City[13]、RedwoodJS[14]、React Router[15]等项目所做的改进,类似的项目还有很多。
OpenAI、谷歌、苹果、微软、美国国家航空航天局(NASA)、Shopify、Cloudflare、GitLab、Reddit、Linear等众多公司都在使用Vite。两个月前,我们开始整理一份使用Vite的公司列表[16]。我们很高兴看到许多开发者向我们发送拉取请求(PR),将他们所在的公司添加到这个列表中。很难想象,自Vite迈出第一步以来,我们共同打造的这个生态系统已经发展得如此壮大。
Vite每周npm下载量
加速Vite生态系统发展[17]
上个月,社区齐聚一堂,参加了由StackBlitz[18]再次主办的第三届ViteConf[19]。这是规模最大的Vite会议,生态系统中的众多构建者都参与其中。在众多发布消息中,尤雨溪(Evan You)宣布了VoidZero[20],这是一家致力于为JavaScript生态系统打造开源、高性能且统一的开发工具链的公司。VoidZero是Rolldown[21]和Oxc[22]背后的团队,他们取得了重大进展,使其能迅速准备好被Vite采用。观看尤雨溪的主题演讲,可进一步了解Vite基于Rust的未来发展方向。
StackBlitz[23]推出了bolt.new[24],这是一个结合了Claude和WebContainers的Remix应用,能让你提示、编辑、运行和部署全栈应用。内特·韦纳(Nate Weiner)宣布了One[25],这是一个由Vite支持的用于Web和原生应用的新React框架。Storybook展示了他们最新的由Vitest提供支持的测试功能[26]。还有很多其他内容。我们鼓励你观看全部43场演讲[27]。演讲者们付出了巨大努力,与我们分享了各个项目的进展情况。
Vite还更新了首页,并且有了一个简洁的域名。今后你应该将网址更新为指向新的https://vite.dev/[28]域名。新的设计和实现是由VoidZero完成的,就是打造他们自己网站的那帮人哦。要特别感谢维森特·罗德里格斯(Vicente Rodriguez)[29]和西蒙·勒·马钱特(Simon Le Marchant)[30]。
Vite的下一个重大版本来了[31]
Vite 6是自Vite 2以来最重要的重大版本发布。我们渴望与生态系统合作,通过新的应用程序编程接口(API)继续拓展我们的共享资源,并且像往常一样,打造一个更精良的基础以供构建应用。
快速链接:
-
文档[32]
-
翻译版本:简体中文[33]、日语[34]、西班牙语[35]、葡萄牙语[36]、韩语[37]、德语[38]
-
迁移指南[39]
-
GitHub更新日志[40]
如果你刚开始接触Vite,我们建议你先阅读入门指南[41]和功能介绍[42]。
我们要感谢1000多名Vite核心贡献者以及Vite插件、集成、工具和翻译的维护者与贡献者,他们帮助我们打造了这个新的重大版本。我们邀请你参与进来,帮助我们为整个生态系统改进Vite。欲了解更多信息,请查看我们的贡献指南[43]。
首先,我们建议帮忙梳理问题[44]、审查拉取请求(PR)[45],根据公开问题发送失败测试的PR,并在讨论区[46]以及Vite Land的帮助论坛[47]中为其他人提供支持。如果你想和我们交流,可以加入我们的Discord社区[48],并在#贡献频道[49]打个招呼。
要获取有关Vite生态系统和Vite核心的最新消息,请在Bluesky[50]、X(原推特)[51]或者Mastodon[52]上关注我们。
开始使用Vite 6[53]
你可以使用pnpm create vite
命令,根据自己偏好的框架快速搭建一个Vite应用,或者使用https://vite.new/[54]在线试用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支持情况[55]
与Vite 5类似,Vite 6支持Node.js 18、20以及22及以上版本。Node.js 21版本的支持已被移除。在Node.js版本达到生命周期结束(EOL)[56]后,Vite会停止对旧版本的支持。Node.js 18的生命周期结束时间是2025年4月底,在此之后,我们可能会发布一个新的重大版本,提高所需的Node.js版本要求。
实验性环境应用程序编程接口(API)[57]
借助新的环境API,Vite变得更加灵活了。这些新的API将允许框架作者提供更贴近生产环境的开发体验,也便于生态系统共享新的构建模块。如果你正在构建单页面应用(SPA),那没有什么变化,当你在单一客户端环境中使用Vite时,一切都会像以前一样正常工作。而且即使对于自定义的服务端渲染(SSR)应用,Vite 6也是向后兼容的。环境API的主要目标受众是框架作者。
对于好奇的终端用户,萨菲(Sapphi)写了一篇很棒的环境API介绍[58]指南。这是一个很好的入手点,可以帮助你理解我们为什么要让Vite变得更加灵活。
如果你是框架作者或者Vite插件维护者,并且想要利用这些新的API,可以在环境API指南[59]中了解更多信息。
我们要感谢所有参与定义和实现这些新API的人员。Anthony Fu 和 Pooya Parsa 创建了vite-node,用于通过Vite改进Nuxt的开发服务端渲染(Dev SSR)情况[60]。随后安东尼使用vite-node为Vitest提供支持,Vladimir Sheremet 则不断对其进行改进。2023年初,Vladimir 开始着手将vite-node向上游合并到Vite核心中,一年后我们在Vite 5.1版本中将其作为运行时API发布了。来自生态系统合作伙伴(特别要感谢Cloudflare团队)的反馈促使我们对Vite的环境进行了一次更具雄心的重新设计。你可以在帕塔克(Patak)在ViteConf 24上的演讲[61]中了解更多相关故事。
Vite团队的每个人都参与了新API的定义工作,该API是结合生态系统中众多项目的反馈共同设计的。感谢每一位参与者!如果你正在基于Vite构建框架、插件或者工具,我们鼓励你参与进来。这些新的API是实验性的。我们将与生态系统合作,审视这些新API的使用情况,并在下一个重大版本中将它们稳定下来。如果你想问问题或者提供反馈,在这里[62]有一个开放的GitHub讨论话题。
主要变更[63]
-
`resolve.conditions`的默认值[64]
-
JSON字符串化[65]
-
在HTML元素中对资源引用的扩展支持[66]
-
postcss-load-config[67]
-
Sass现在默认使用现代API[68]
-
在库模式下自定义CSS输出文件名[69]
-
以及其他仅会影响少数用户的变更[70]
还有一个新的重大变更[71]页面,上面列出了Vite中所有计划内、正在考虑以及过去已经发生的变更。
迁移到Vite 6[72]
对于大多数项目来说,更新到Vite 6应该是比较简单直接的,但我们建议在升级之前查看一下详细的迁移指南[73]。
完整的变更列表可在Vite 6更新日志[74]中查看。
鸣谢[75]
Vite 6是我们的贡献者社区、下游维护者、插件作者以及Vite团队[76]长时间努力工作的成果。我们感谢赞助Vite开发的个人和公司。Vite是由VoidZero[77]推出的,并与StackBlitz[78]、Nuxt Labs[79]以及Astro[80]进行合作。还要向Vite的GitHub赞助商[81]以及Vite的Open Collective[82]上的赞助商们表示感谢。