[关闭]
@levinzhang 2023-01-07T14:29:18.000000Z 字数 1329 阅读 291

Vite 4发布,使用更快的SWC替换了Babel

by

摘要:

Vite前端构建工具背后的团队最近发布了Vite 4.0,此时距离Vite 3.0已有5个月。新版本的动力来自于从Rollup 2.0到3.0的突破性升级。Vite 4.0还增加了对SWC的支持,这是一个基于Rust的打包器,声称比Babel有数量级的速度提升。


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,例如StorybookAstroNuxtSvelteKitSolid StartHydrogenLaravelQwik City以及其他产品。Vite团队提到:

在生态系统合作伙伴的帮助下,[我们]很高兴地宣布Vite 4发布,它在构建时由Rollup 3提供支持。我们会与生态系统协作,确保这个新的主版本的平滑升级。

虽然Rollup 3与Rollup 2基本兼容,但使用自定义rollupOptions的开发者可能会遇到问题,应参考Rollup迁移指南来升级他们的配置。

Vite 4.0还升级了dotenvdotenv-expand的版本(参见dotenvdotenv-expand的变更日志)。新版本的dotenv带来了一些破坏性的变化,要求开发者用引号来包装包含某些字符(如回车键)的名字:

  1. -VITE_APP=ab#cd`ef
  2. +VITE_APP="ab#cd`ef"

最近发布的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的贡献指南

查看英文原文:Vite 4 Released, Replaces Babel with Faster Rust-based SWC

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注