Vite 又开始搞事情了!!!

哈喽,大家好 我是 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 的底层使用了两个打包工具:EsbuildRollup

首先,让我们了解一下 EsbuildRollup 的特点。

Esbuild 是一个高性能的 JavaScript 打包器,专注于实现极速的构建过程。

它支持多种模块类型、语法转换和插件扩展,且无需缓存即可迅速完成打包任务。在 Vite 中,Esbuild 被用于依赖预打包TypeScriptJSX 转换、目标降级以及代码压缩

而 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 年最具影响力的前端项目之一

参考连接:

写在最后

公众号前端开发爱好者 专注分享 web 前端相关技术文章视频教程资源、热点资讯等,如果喜欢我的分享,给 🐟🐟 点一个 👍 或者 ➕关注 都是对我最大的支持。

欢迎长按图片加好友,我会第一时间和你分享前端行业趋势面试资源学习途径等等。

欢迎加我好友,我会第一时间和你分享前端行业趋势面试资源学习途径等等。

WX: xuxuxu_yyy

关注公众号后,在首页:

  • 回复 面试题,获取最新大厂面试资料。
  • 回复简历,获取 3200 套 简历模板。
  • 回复React实战,获取 React 最新实战教程。
  • 回复Vue实战,获取 Vue 最新实战教程。
  • 回复ts,获取 TypeScript 精讲课程。
  • 回复vite,获取 Vite 精讲课程。
  • 回复uniapp,获取 uniapp 精讲课程。
  • 回复js书籍,获取 js 进阶 必看书籍。
  • 回复Node,获取 Nodejs+koa2 实战教程。
  • 回复数据结构算法,获取数据结构算法教程。
  • 回复架构师,获取 架构师学习资源教程。
  • 更多教程资源应有尽有,欢迎关注获取
相关推荐
GIS之路7 分钟前
GDAL 实现矢量裁剪
前端·python·信息可视化
是一个Bug11 分钟前
后端开发者视角的前端开发面试题清单(50道)
前端
Amumu1213813 分钟前
React面向组件编程
开发语言·前端·javascript
持续升级打怪中34 分钟前
Vue3 中虚拟滚动与分页加载的实现原理与实践
前端·性能优化
GIS之路38 分钟前
GDAL 实现矢量合并
前端
hxjhnct40 分钟前
React useContext的缺陷
前端·react.js·前端框架
冰暮流星1 小时前
javascript逻辑运算符
开发语言·javascript·ecmascript
前端 贾公子1 小时前
从入门到实践:前端 Monorepo 工程化实战(4)
前端
菩提小狗1 小时前
Sqlmap双击运行脚本,双击直接打开。
前端·笔记·安全·web安全
前端工作日常1 小时前
我学习到的AG-UI的概念
前端