哈喽,大家好 我是
xy
👨🏻💻。Vite
又在搞事情!!!
Vite 的最新版本将引入一种名为 Rolldown
的新型打包工具。
Rolldown 的优势
Rolldown 是一款用 Rust
重新编写的 Rollup
替代品。而 Rollup 使用的是 javascript。
Rolldown 具有以下特点:
-
与 Rollup 兼容
:Rolldown 设计之初就考虑到了与 Rollup 的兼容性,这意味着现有的 Rollup 插件和配置可以无缝迁移到 Rolldown,极大地方便了开发者的过渡和使用。 -
更快的构建速度
:Rolldown 致力于提供更快的构建速度,这对于开发效率的提升至关重要。在现代 Web 开发中,快速的反馈循环可以显著提高开发效率,而 Rolldown 正是为了满足这一需求而设计的。 -
更小的输出体积
:Rolldown 还专注于生成更小的输出体积,这有助于减少加载时间,提高用户体验。在移动设备和网络连接受限的环境中,这一点尤为重要。
Rolldown 类似于 esbuild,它是一款专注于速度和性能的 JavaScript 构建工具。
尤雨溪(Evan You)表示,在捆绑纯 esm 模块时,Rolldown 比 esbuild 快 1.4~2
倍。但这次大家对性能的关注度不太高。反而是 Rust
占了很大一部分的注意力。
Vite 存在的问题
目前,Vite 的底层使用了两个打包工具:Esbuild
、Rollup
首先,让我们了解一下 Esbuild
和 Rollup
的特点。
Esbuild
是一个高性能的 JavaScript 打包器,专注于实现极速的构建过程。
它支持多种模块类型、语法转换和插件扩展,且无需缓存即可迅速完成打包任务。在 Vite 中,Esbuild 被用于依赖预打包
、TypeScript
和 JSX
转换、目标降级
以及代码压缩
。
而 Rollup 则是一个 JavaScript 模块打包器
,能够编译小块代码成复杂的大型代码块,特别支持 ES6 模块。
它支持 Tree Shaking
,有效去除未使用的代码,减少最终文件大小。在 Vite 中,Rollup 被用于生产构建,并支持一个与 Rollup 兼容的插件接口。
然而,使用两个不同的打包工具存在明显弊端:它们之间的输出差异可能导致开发环境
与生产环境
行为的不一致,同时,用户代码在生产构建过程中会被多次解析
、转换
和序列化
,从而增加了不必要的性能开销。
因此,希望 Vite 能够整合一个单一的
、性能卓越的打包工具,既能减少解析和序列化开销,又能与 Rollup 插件生态兼容,并具备出色的大型应用构建输出控制能力。
正是在这个背景下,Rolldown
应运而生!
Rolldown 的未来
Rolldown 使用 Rust
编写,并且使用了 Oxc 中的工具。Oxc 是字节跳动出品的一个用 Rust 编写的 JavaScript 高性能工具集合,该项目的重点在于构建 JavaScript 的基本编译器工具:解析器、linter、格式化程序、转译器、压缩器和解析引擎。此外,OXC 还为 Rspack、Rolldown 和 Ezno 等新兴 JavaScript 工具提供支持。
目前,Rolldown 主要依赖其高效的解析器
和解析引擎
进行工作。未来,一旦 Oxc 的转换器和压缩器可用,Rolldown 也将计划集成它们,Rolldown 也将直接作为独立的打包使用。
当 Rolldown 发展至成熟阶段时,它将能够直接取代
Esbuild 和 Rollup,这样将减少了对外部工具的依赖,为未来的功能扩展提供更大的便利和灵活性。
可以说: Rolldown 可能是未来 5-10 年最具影响力的前端项目之一。
参考连接:
- Rolldown 官网:rolldown.rs/
写在最后
公众号
:前端开发爱好者
专注分享web
前端相关技术文章
、视频教程
资源、热点资讯等,如果喜欢我的分享,给 🐟🐟 点一个赞
👍 或者 ➕关注
都是对我最大的支持。
欢迎长按图片加好友
,我会第一时间和你分享前端行业趋势
,面试资源
,学习途径
等等。
欢迎加我好友
,我会第一时间和你分享前端行业趋势
,面试资源
,学习途径
等等。
WX: xuxuxu_yyy
关注公众号后,在首页:
- 回复
面试题
,获取最新大厂面试资料。 - 回复
简历
,获取 3200 套 简历模板。 - 回复
React实战
,获取 React 最新实战教程。 - 回复
Vue实战
,获取 Vue 最新实战教程。 - 回复
ts
,获取 TypeScript 精讲课程。 - 回复
vite
,获取 Vite 精讲课程。 - 回复
uniapp
,获取 uniapp 精讲课程。 - 回复
js书籍
,获取 js 进阶 必看书籍。 - 回复
Node
,获取 Nodejs+koa2 实战教程。 - 回复
数据结构算法
,获取数据结构算法教程。 - 回复
架构师
,获取 架构师学习资源教程。 - 更多教程资源应有尽有,欢迎
关注获取