成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Vue 團隊正式開源 Rolldown:基于 Rust 的超快 JavaScrip 打包工具!

開發 前端
目前,Rollup 已成為業內領先的打包工具,其開創了 Tree Shaking 的概念。當 Vite 橫空出世,它亦以Rollup 為構建核心,成為多個主流框架的首選構建工具。Rollup 已經從單純的庫打包工具,演變為現代前端開發的核心支柱。

3 月 8 日,Vue 團隊正式開源了其對外公布已久的打包工具:Rolldown,它是使用 Rust 開發的 Rollup 替代品,提供了與 Rollup 兼容的 API 和插件接口,但在功能范圍上將更接近 Esbuild。本文就來詳細了解一下 Rolldown 背后的故事!

圖片圖片

都有 Rollup 了,為什么還需要 Rolldown?

Rolldown 旨在成為 Vite 未來使用的核心底層打包工具,與常見的開箱即用的構建工具(如Webpack、Vite等)不同,它更加專注于底層的打包邏輯和核心功能,以滿足 Vite 對于高效打包的特定需求。

圖片圖片

目前,Vite 的底層使用了兩個打包工具:

  • Esbuild:Esbuild 是一款高性能的  JavaScript 打包器,專注于實現極速的構建過程。它支持多種模塊類型、語法轉換和插件擴展,且無需緩存即可迅速完成打包任務。在 Vite 中,Esbuild 被用于依賴預打包、TypeScript和JSX轉換、目標降級以及代碼壓縮。
  • Rollup:Rollup 是一個JavaScript模塊打包器,能夠編譯小塊代碼成復雜的大型代碼塊,特別支持ES6模塊。它支持 Tree Shaking,有效去除未使用的代碼,減少最終文件大小。在 Vite 中,Rollup 被用于生產構建,并支持一個與Rollup 兼容的插件接口。

Vite 之所以采用兩個不同的打包工具,是因為雖然 Esbuild 速度卓越且功能豐富,但其在代碼塊拆分方面的局限使其不適用于應用打包;而 Rollup 雖在應用打包方面成熟可靠,但性能卻不及原生編譯工具。兩者各有優勢,功能互補,因此 Vite 需要結合使用以滿足不同需求。

然而,使用兩個不同的打包工具存在明顯弊端:它們之間的輸出差異可能導致開發環境與生產環境行為的不一致,同時,用戶代碼在生產構建過程中會被多次解析、轉換和序列化,從而增加了不必要的性能開銷。

因此,希望 Vite 能夠整合一個單一的、性能卓越的打包工具,既能減少解析和序列化開銷,又能與 Rollup 插件生態兼容,并具備出色的大型應用構建輸出控制能力。所以,Rolldown 就誕生了!

正是在這個背景下,Rolldown 應運而生!

Rolldown 的未來

Rolldown 使用 Rust 編寫,并且使用了 Oxc 中的工具。Oxc 是字節跳動出品的一個用 Rust 編寫的 JavaScript 高性能工具集合,該項目的重點在于構建 JavaScript 的基本編譯器工具:解析器、linter、格式化程序、轉譯器、壓縮器和解析引擎。此外,OXC 還為 Rspack、Rolldown 和 Ezno 等新興 JavaScript 工具提供支持。

圖片圖片

目前,Rolldown 主要依賴其高效的解析器和解析引擎進行工作。未來,一旦 Oxc 的轉換器和壓縮器可用,Rolldown 也將計劃集成它們,Rolldown 也將直接作為獨立的打包使用。

當 Rolldown 發展至成熟階段時,它將能夠直接取代 Esbuild 和 Rollup,這樣將減少了對外部工具的依賴,為未來的功能擴展提供更大的便利和靈活性。

注意:目前 Rolldown 仍處于積極研發階段,尚未達到生產環境的使用標準。

小結

Rolldown 可能是未來 5-10 年最具影響力的前端項目之一。

目前,Rollup 已成為業內領先的打包工具,其開創了 Tree Shaking 的概念。當 Vite 橫空出世,它亦以Rollup 為構建核心,成為多個主流框架的首選構建工具。Rollup 已經從單純的庫打包工具,演變為現代前端開發的核心支柱。

然而,隨著前端開發規模的擴張,Rollup 的性能瓶頸逐漸顯現。盡管 Esbuild 等使用 Go 編寫的原生打包工具速度飛快,但它們與 Rollup 并不兼容,且存在諸多局限,如缺乏 TypeScript 支持、 Tree Shaking限制等。Vite 試圖結合 Esbuild 與 Rollup 以獲得兩全其美的效果,但解析問題卻成為新的挑戰。每個構建工具都需要生成自己的 AST 樹,且眾多 Rollup/Vite 插件也重復進行解析,這無疑造成了資源浪費。

Rolldown 項目應運而生,旨在解決這些問題。它采用 Rust 語言編寫,這一語言以高效著稱,甚至在某些場景下超越了 Go 的性能。更重要的是,Rolldown 力求與 Rollup API 保持兼容,這將是一個巨大的突破。一旦成功,Vite 等框架可以無縫切換到 Rolldown,帶來顯著的性能提升。

更值得一提的是,Rolldown 還致力于實現單一解析的標準化。由于 Vite 的廣泛應用和 Rolldown 采用 OXC 進行解析,我們有望看到一個以單一解析和 AST 樹標準化為核心的新時代。這將為開發環境和構建時間帶來前所未有的性能飛躍。

展望未來,若 Rolldown 能夠成功實現這些目標,它將成為轉換每一個代碼字節的關鍵引擎,無論開發者選擇何哪個框架。Rolldown 的出現,無疑將為前端開發領域帶來一場深刻的變革。

相關鏈接

責任編輯:武曉燕 來源: 前端充電寶
相關推薦

2024-03-11 00:02:00

Vite開源工具

2025-04-16 09:03:27

2025-06-06 01:30:00

Vue后端API

2023-12-30 16:30:29

開發者工具Vite

2023-10-31 07:27:22

開源工具MySQL協議

2018-05-30 15:33:00

打包工具Web

2022-01-04 10:51:11

工具開源PDF

2022-01-04 08:00:48

前端技術Esbuild

2024-09-02 00:00:01

2023-06-27 06:56:32

2025-03-04 07:40:00

Python模塊開發

2020-10-24 07:30:05

開源字節跳動模型

2020-08-12 09:35:23

Docker工具開源

2014-12-09 10:24:53

CrossApp開源

2024-01-15 11:56:55

lintersESLint

2014-12-09 12:57:19

AnySDK

2024-08-22 14:47:50

開源Linux網絡抓包工具

2024-02-23 08:13:25

Excalidraw白板工具開源

2022-01-19 11:48:21

安全開源工具

2020-09-28 15:48:37

開源技術 軟件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产高清在线视频 | 亚洲成人综合社区 | 国产一区二区在线视频 | 精品一区二区三区四区 | 国产乱码精品1区2区3区 | 玖玖视频网 | 日韩精品一区二区三区久久 | 午夜tv免费观看 | 91文字幕巨乱亚洲香蕉 | 欧美日韩一区在线 | 成人午夜在线 | 欧美一级黄色片在线观看 | 欧美日韩一区二区视频在线观看 | 91在线电影 | 久久久久久一区 | 国产精品欧美一区二区三区不卡 | 九九热视频这里只有精品 | 成人美女免费网站视频 | 色婷婷综合网 | 一区二区三区在线播放 | 国产精品一区二区三区在线 | 在线中文字幕av | 国产精品视频偷伦精品视频 | 亚洲视频国产视频 | 中文字幕一区二区三区精彩视频 | 国产乱码精品一区二区三区忘忧草 | 亚洲iv一区二区三区 | 性欧美精品一区二区三区在线播放 | 日韩视频中文字幕 | 国产一区二区三区免费 | 韩国精品在线 | 国产一区二区三区免费观看在线 | 视频一区 亚洲 | 久久久精品综合 | 久久精品亚洲一区二区三区浴池 | 91精品久久久久久久久99蜜臂 | 91在线成人 | 99久久久99久久国产片鸭王 | 91精品国产777在线观看 | 精品亚洲一区二区 | 国产片网站 |