Hello,大家好,我是 Sunday。
11月26日,vite 6
官宣发布,第一时间我就去看了对应的官方文档。
看完之后只有一个感觉,那就是 “失望”。 vite 6
的升级更像是一个过渡版本,借此来去推出一些 实验性质的功能 以及 发布一些过期声明。
从更新内容来看,Vite 6
既没有像 Vite 3
引入的 ESBuild 替代 Terser,也没有像 Vite 4
强化 SSR 性能那样的“大刀阔斧”。相反,Vite 6 的重点更像是在为未来的 Vite 7 做铺垫,通过优化现有功能、实验性新特性和现代化迁移支持,提供了一个平滑过渡的版本。
不过,过渡版本≠没有价值
。今天就让咱们花上几分钟的时间,来详细了解下 vite 6 都带来了哪些新的内容
,以及 为何说它是个 “过渡版本”!
vite 6 都带来了哪些新的内容
1. 引入实验性环境 API
Vite 6 推出了新的实验性环境 API,允许开发者根据应用的生产环境需求 创建多个环境配置。这使得在开发和构建过程中,可以更精确地模拟不同的运行环境,从而提高开发效率和代码质量。
对开发者的影响:对于使用单一客户端环境的 SPA 应用,现有配置无需更改。但对于需要多环境支持的应用,新的环境 API 提供了更大的灵活性,开发者可以根据需要定义和配置不同的环境。
2. 默认解析条件的更新
在 Vite 5 中,resolve.conditions
的默认值为 []
,某些条件是内部添加的。在 Vite 6 中,这些条件不再被内部添加,需要在配置中明确指定。例如,resolve.conditions
的默认值现在是 ['module', 'browser', 'development|production']
。
对开发者的影响:如果在项目中使用了自定义的解析条件配置,需要检查并更新配置,以确保包含新的默认条件,避免解析问题。
3. JSON 处理的改进
Vite 6 对 JSON 文件的处理进行了调整。即使设置了 json.stringify: true
,json.namedExports
也不会被禁用。此外,json.stringify
引入了新的默认值 'auto'
,仅对大型 JSON 文件进行字符串化处理。
对开发者的影响:开发者需要根据项目需求,检查并调整 JSON 相关配置,以确保 JSON 文件的处理符合预期。
4. 扩展对 HTML 元素中资源引用的支持
Vite 6 扩展了对更多 HTML 元素中资源引用的支持。现在,更多的 HTML 元素可以引用由 Vite 处理和打包的资源。要在某些元素上选择不进行 HTML 处理,可以在元素上添加 vite-ignore
属性。
对开发者的影响:这使得开发者在处理 HTML 模板时有了更大的灵活性,可以更方便地管理资源引用。
5. Sass 默认使用现代 API
在 Vite 5 中,Sass 默认使用传统 API。从 Vite 6 开始,Sass 默认使用现代 API。如果需要继续使用传统 API,可以在配置中设置 css.preprocessorOptions.sass.api: 'legacy'
。
对开发者的影响:建议开发者迁移到现代 API,以利用其性能和功能优势。需要注意的是,传统 API 支持将在 Vite 7 中移除。
6. 在库模式下自定义 CSS 输出文件名
在 Vite 5 中,库模式下的 CSS 输出文件名始终是 style.css
,无法通过配置轻松更改。从 Vite 6 开始,默认文件名将使用 package.json
中的 "name"
,与 JS 输出文件类似。如果需要明确设置不同的 CSS 文件名,可以使用新的 build.lib.cssFileName
进行配置。
对开发者的影响:开发者可以更灵活地管理库模式下的 CSS 输出文件名,满足不同项目的需求。
7. 其他改进和修复
Vite 6 还包含其他改进和修复,例如:
build.cssMinify
在 SSR 中默认为'esbuild'
。server.proxy[path].bypass
现在用于 WebSocket 升级请求。build.minify: 'terser'
所支持的最小 terser 版本从 5.4.0 提升至 5.16.0。commonjsOptions.strictRequires
现在默认为true
。
对开发者的影响:这些改进和修复提升了 Vite 的稳定性和性能,开发者应查看更新日志,了解可能影响项目的更改。
为何说它是个 “过渡版本”?
不知道大家看完更新内容之后是什么感受。在我的【主观】看来,整个 vite 6
的更新并没有涉及到什么核心的变化。
Vite 6 的 实验性环境 API 和 扩展 HTML 元素支持 等功能,虽然提供了新的可能性,但尚未完全稳定。
例如:实验性环境 API 仍需要开发者小心测试,而 HTML 元素扩展的适用场景可能在实际应用中仍需验证。这些改进在为未来铺路,但当前版本的开发者可能更多是在 “试水”。
相比 Vite 4 和 Vite 5,Vite 6 没有带来革命性的改进。
比如: Vite 4 的模块热替换(HMR)性能提升和 Vite 5 的 SSR 支持完善。
因此,我说 vite 6
更像是一个过渡版本。
如果你的项目对性能和现代特性要求较高(如复杂的多环境支持、使用现代 Sass API),那么可以尝试升级 vite 6。但是,如果你没有这方面需求的话,那么 vite 6 对你的意义可能并不是很大!
前端训练营:1v1 私教,9 大服务,终身辅导,帮你拿到满意的
offer
。 已帮助数百位同学拿到了中大厂offer