11 月 26 日,Vite 6.0 正式发布。自一年前 Vite 5 发布以来,Vite 的采用率持续增长,每周 npm 下载量已从 750 万次跃升至 1700 万次。与此同时,Vitest 不仅越来越受到用户的青睐,并开始逐步建立起属于自己的生态系统。
此外,Vite 生态系统也迎来了更多新框架的加入,包括 TanStack Start、One、Ember 等,众多知名企业如 OpenAI、谷歌、苹果、微软、NASA、Shopify、Cloudflare、GitLab、Reddit、Linear 等都在使用 Vite。
Vite 还推出了全新的域名:vite.dev,以及全新的落地页:
Vite 6 是自 Vite 2 以来最重要的主要版本,该版本主要带来了 Environment API(实验性)。Environment API 是 Vite 6 中引入的一个实验性特性,它正式化了环境(Environments)的概念。这个 API 允许用户和框架作者根据生产环境中应用的工作方式,创建所需的多个环境。它在 Vite 5.1 中以 "Vite Runtime API" 的名称首次引入,并在 Vite 6 中以实验性功能发布。
Environment API解决了什么问题?
-
多环境支持:在 Vite 5 及之前版本中,只有两个隐式环境(客户端和可选的服务端渲染环境)。Environment API 允许创建多个环境,以更好地映射现代应用可能涉及的多个运行环境,如浏览器、Node 服务器和边缘服务器。
-
开发与构建之间的差距:Environment API 使得在开发和构建期间配置应用以适应所有环境成为可能,从而缩小了开发环境和生产环境之间的差异。
-
向后兼容性:尽管引入了新的环境概念,Vite 6 仍然保持了与 Vite 5 的向后兼容性,确保了平滑的迁移过程。
Vite 6 其他更新内容:
-
resolve.conditions 默认值变更:Vite 6需要用户手动配置
resolve.conditions
和ssr.resolve.conditions
的条件,若之前已自定义,需更新以包含新条件。 -
JSON字符串化变更:Vite 6引入
json.stringify
的'auto'
默认值,仅对大JSON文件进行字符串化,且json.namedExports
不会被禁用。若需禁用,可设置json.stringify: false
。 -
HTML资源引用扩展:Vite 6 扩展了对 HTML 元素中资源引用的支持,可通过
vite-ignore
属性选择退出某些元素的HTML处理。 -
postcss-load-config更新:Vite 6 要求使用
tsx
或jiti
加载TypeScript postcss配置文件,使用yaml
加载YAML配置文件。 -
Sass 默认使用现代 API:Vite 6 默认使用 Sass 的现代API,若需使用旧API,可设置相关选项,但 Vite 7 将移除对旧API的支持。
-
库模式下CSS输出文件名:Vite 6 库模式下的CSS输出文件名默认使用
package.json
中的name
,若已设置build.lib.fileName
,则也用于CSS文件名。可通过build.lib.cssFileName
明确设置不同的CSS文件名。