作者 | Bruno Couriol
译者 | 张卫滨
策划 | 丁晓昀
Vite 前端构建工具背后的团队最近发布了 Vite 4.0,此时距离 Vite 3.0 发布已有 5 个月。新版本的动力来自于从 Rollup 2.0 到 3.0 的突破性升级。Vite 4.0 还增加了对 SWC 的支持,这是一个基于 Rust 的打包器(bundler),声称比 Babel 有数量级的速度提升。
现在,Vite 4.0 在构建时使用 Rollup 3.0。Rollup 3.0 是在几周前的 ViteConf 2022 上发布的。ViteConf 2022 聚集了 Vite 生态系统的主要参与者。自 Vite 2.0 以来,Vite 是一个与框架无关的构建工具。因此,许多其他的开发者工具、库和框架开始支持 Vite,例如 Storybook、Astro、Nuxt、SvelteKit、Solid Start、Hydrogen、Laravel、Qwik City 以及其他产品。Vite 团队提到:
在生态系统合作伙伴的帮助下,[我们] 很高兴地宣布 Vite 4 发布,它在构建时由 Rollup 3 提供支持。我们会与生态系统协作,确保这个新的主版本的平滑升级。
虽然 Rollup 3 与 Rollup 2 基本兼容,但使用自定义 rollupOptions 的开发者可能会遇到问题,应参考 Rollup 迁移指南来升级他们的配置。
Vite 4.0 还升级了 dotenv 和 dotenv-expand 的版本(参见 dotenv 和 dotenv-expand 的变更日志)。新版本的 dotenv 带来了一些破坏性的变化,要求开发者用引号来包装包含某些字符(如回车键)的名字:
1 | -VITE_APP=ab#cdef |
最近发布的 Next.JS 13 包括了 Turbopack,这是一个新的、仍在 alpha 阶段的、基于 Rust 的 Webpack 替代方案,声称比 Vite 快几个数量级。对这一说法的研究表明,大部分速度的提高与 Turbopack 使用 SWC 有关,SWC 是一个基于 Rust 的打包器,目前仍处于 alpha 阶段。SWC 声称比 Vite 3.0 中使用的 Babel 快 20 倍。Vite 4.0 现在增加了对 SWC 的支持,这应该有助于缩小这一差距。Vite 团队解释说:
SWC 现在是 Babel 的成熟替代方案,特别是在 React 项目下。SWC 的 React 快速刷新实现比 Babel 快很多,对于一些项目来说,它现在是一个更好的选择。从 Vite 4 开始,有两个插件可用于 React 项目,它们有不同的权衡。我们认为目前这两种方法都值得支持,未来我们会继续探索对这两个插件的改进。
开发者可以参考迁移指南和发布说明,以了解与新版本相关的详尽变化。Vite 是在 MIT 开源许可下发布的。欢迎提交贡献,但必须遵循 Vite 的贡献指南。