Vite 8.0 正式发布,它使用 Rust 构建的 Rolldown 作为单一打包器,同时取代了 esbuild 和 Rollup,从而实现更快的构建速度。
Vite 既是开发服务器,也是 TypeScript 和 JavaScript 应用程序的构建工具,支持热模块替换(HMR),可以在不重新加载整个页面的情况下更新代码,并通过插件添加特定框架功能等特性。Vite 可以与多种框架配合使用,根据 8.0 版本的介绍文章,目前每周下载量达到 6500 万次。
Rolldown 旨在与现有插件兼容,因为它支持相同的插件 API。虽然它包含在 Vite 8 中,但 Rolldown 项目仍处于候选发布状态,其压缩功能(通过最小变量名等策略将源代码压缩到最小尺寸)仍处于 alpha 阶段。
Rolldown 构建在同样使用 Rust 编写的 Oxc 之上。Oxc 是一个实用程序,其功能包括代码检查、格式化、解析、TypeScript 和 JSX(定义 React 元素的代码)转译、模块解析和压缩。
Rolldown 和 Oxc 都是由 Void Zero 赞助的开源项目。该公司由 Vite 和 Vue.js 框架的创建者 Evan You 于 2024 年创立。在公司成立时,You 表示需要统一的工具链来克服 JavaScript 生态系统的挑战:"碎片化、不兼容性和低效率"。
Vite 团队声称 Rolldown "比 Rollup 快 10-30 倍",并且与同样是原生代码但用 Go 编写的 esbuild 性能相当。
Vite 8.0 的其他新功能包括用于构建分析和调试的新 DevTools(前提是使用 Rolldown)、SSR(服务器端渲染)环境中的 Wasm 支持,以及将浏览器控制台日志转发到开发服务器终端。
未来计划包括完整打包模式,在开发和生产环境中都对模块进行打包。快速构建时间使这变得更加实用。团队表示:"初步结果显示开发服务器启动速度快 3 倍,完整重新加载快 40%,网络请求减少 10 倍。"
对 Vite 8.0 的早期反应是积极的,主要原因是构建时间更快。一位用户说:"我们在一个最大的项目上看到了从 12 分钟到 2 分钟的改进。"
Rolldown 并不是唯一用 Rust 重写构建工具的例子。其他例子包括由 Vercel 赞助、由 Webpack 发明者 Tobias Koppers 创建的 Turbopack 项目;以及字节跳动的 Rspack,它用 Rust 编写但与 Webpack 兼容。这三个工具都表现良好,不过根据当前基准测试,还不如用 Zig 构建的 Bun。Turbopack 的问题是与 Next.js 框架紧密集成,而 Rolldown 和 Vite 则受益于插件生态系统和广泛的框架支持。
TypeScript 项目也在即将发布的 TypeScript 7.0 中转向原生代码编译器(tsc),使用 Go 语言,微软的 Anders Hejlsberg(TypeScript 的发明者)声称性能提升超过 10 倍。
一个尴尬的问题是:如果使用原生代码工具为 TypeScript 和 JavaScript 项目带来如此大的好处,开发人员是否也应该重新考虑在浏览器外运行时为项目代码本身使用解释型语言?最受欢迎的 IDE Visual Studio Code 是用 TypeScript 编写的,使用 Electron 框架,但比 Zed 或 Notepad++ 等原生代码编辑器更慢,占用更多内存。
Q&A
Q1:Rolldown是什么?它有什么特点?
A:Rolldown是用Rust构建的打包器,旨在取代esbuild和Rollup成为Vite的单一打包器。它与现有插件兼容,支持相同的插件API,Vite团队声称其速度比Rollup快10-30倍,性能与esbuild相当。
Q2:Vite 8.0相比之前版本有哪些主要改进?
A:Vite 8.0的主要改进包括:使用Rust驱动的Rolldown实现10-30倍的构建速度提升,新增用于构建分析和调试的DevTools,支持SSR环境中的Wasm,以及将浏览器控制台日志转发到开发服务器终端等功能。
Q3:为什么越来越多的JavaScript工具选择用Rust重写?
A:使用Rust等原生代码重写工具能够显著提升性能。除了Rolldown,还有Turbopack、Rspack等项目都采用了类似策略。这些工具相比原来的JavaScript实现都有大幅度的性能提升,能够解决JavaScript生态系统中的碎片化、不兼容性和低效率问题。
好文章,需要你的鼓励
火箭实验室(Rocket Lab)宣布计划以现金加股票方式,斥资80亿美元收购主要卫星运营商铱星通信(Iridium Communications),交易预计于2027年中完成。铱星目前运营着由66颗活跃低轨卫星组成的星座网络,拥有约255万活跃用户,2024年营收达8.717亿美元。收购完成后,Rocket Lab计划借助其新型重型运载火箭Neutron及Lightning卫星平台,扩大铱星星座规模,开拓未被覆盖的市场并降低发射成本。
腾讯等机构提出ViQ框架,通过两阶段渐进量化训练,让离散视觉编码在多模态理解和图像重建上同时追平连续特征编码器,训练速度最高提升70%。
音乐流媒体平台Tidal宣布,将于7月中旬启用自动化工具,对完全由AI生成的音乐添加"AI"标识,并移除具有欺诈性质的曲目。平台还将取消AI生成音乐的版税资格,仅向真人创作、演唱的原创音乐开放变现渠道。此外,Tidal明确将高频异常上传、干扰真实艺术家等行为列为欺诈活动。Deezer、Spotify等竞争对手此前已推出类似检测机制,流媒体行业正加速构建AI内容治理体系。
香港科技大学与华为联合提出LISA训练方法,通过让副网络对齐"似然分数",将ControlNet等图像生成模型的训练收敛速度提升逾2.78倍,同时改善图像质量与条件控制精度。