偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Vue 團(tuán)隊(duì)正式開(kāi)源 Rolldown:基于 Rust 的超快 JavaScrip 打包工具!

開(kāi)發(fā) 前端
目前,Rollup 已成為業(yè)內(nèi)領(lǐng)先的打包工具,其開(kāi)創(chuàng)了 Tree Shaking 的概念。當(dāng) Vite 橫空出世,它亦以Rollup 為構(gòu)建核心,成為多個(gè)主流框架的首選構(gòu)建工具。Rollup 已經(jīng)從單純的庫(kù)打包工具,演變?yōu)楝F(xiàn)代前端開(kāi)發(fā)的核心支柱。

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

圖片圖片

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

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

圖片圖片

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

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

Vite 之所以采用兩個(gè)不同的打包工具,是因?yàn)殡m然 Esbuild 速度卓越且功能豐富,但其在代碼塊拆分方面的局限使其不適用于應(yīng)用打包;而 Rollup 雖在應(yīng)用打包方面成熟可靠,但性能卻不及原生編譯工具。兩者各有優(yōu)勢(shì),功能互補(bǔ),因此 Vite 需要結(jié)合使用以滿足不同需求。

然而,使用兩個(gè)不同的打包工具存在明顯弊端:它們之間的輸出差異可能導(dǎo)致開(kāi)發(fā)環(huán)境與生產(chǎn)環(huán)境行為的不一致,同時(shí),用戶代碼在生產(chǎn)構(gòu)建過(guò)程中會(huì)被多次解析、轉(zhuǎn)換和序列化,從而增加了不必要的性能開(kāi)銷。

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

正是在這個(gè)背景下,Rolldown 應(yīng)運(yùn)而生!

Rolldown 的未來(lái)

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

圖片圖片

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

當(dāng) Rolldown 發(fā)展至成熟階段時(shí),它將能夠直接取代 Esbuild 和 Rollup,這樣將減少了對(duì)外部工具的依賴,為未來(lái)的功能擴(kuò)展提供更大的便利和靈活性。

注意:目前 Rolldown 仍處于積極研發(fā)階段,尚未達(dá)到生產(chǎn)環(huán)境的使用標(biāo)準(zhǔn)。

小結(jié)

Rolldown 可能是未來(lái) 5-10 年最具影響力的前端項(xiàng)目之一。

目前,Rollup 已成為業(yè)內(nèi)領(lǐng)先的打包工具,其開(kāi)創(chuàng)了 Tree Shaking 的概念。當(dāng) Vite 橫空出世,它亦以Rollup 為構(gòu)建核心,成為多個(gè)主流框架的首選構(gòu)建工具。Rollup 已經(jīng)從單純的庫(kù)打包工具,演變?yōu)楝F(xiàn)代前端開(kāi)發(fā)的核心支柱。

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

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

更值得一提的是,Rolldown 還致力于實(shí)現(xiàn)單一解析的標(biāo)準(zhǔn)化。由于 Vite 的廣泛應(yīng)用和 Rolldown 采用 OXC 進(jìn)行解析,我們有望看到一個(gè)以單一解析和 AST 樹(shù)標(biāo)準(zhǔn)化為核心的新時(shí)代。這將為開(kāi)發(fā)環(huán)境和構(gòu)建時(shí)間帶來(lái)前所未有的性能飛躍。

展望未來(lái),若 Rolldown 能夠成功實(shí)現(xiàn)這些目標(biāo),它將成為轉(zhuǎn)換每一個(gè)代碼字節(jié)的關(guān)鍵引擎,無(wú)論開(kāi)發(fā)者選擇何哪個(gè)框架。Rolldown 的出現(xiàn),無(wú)疑將為前端開(kāi)發(fā)領(lǐng)域帶來(lái)一場(chǎng)深刻的變革。

相關(guān)鏈接

責(zé)任編輯:武曉燕 來(lái)源: 前端充電寶
相關(guān)推薦

2024-03-11 00:02:00

Vite開(kāi)源工具

2025-04-16 09:03:27

2018-05-30 15:33:00

打包工具Web

2023-10-31 07:27:22

開(kāi)源工具MySQL協(xié)議

2025-06-06 01:30:00

Vue后端API

2023-12-30 16:30:29

開(kāi)發(fā)者工具Vite

2024-09-02 00:00:01

2022-01-04 08:00:48

前端技術(shù)Esbuild

2022-01-04 10:51:11

工具開(kāi)源PDF

2025-03-04 07:40:00

Python模塊開(kāi)發(fā)

2025-09-16 09:27:33

2023-06-27 06:56:32

2020-10-24 07:30:05

開(kāi)源字節(jié)跳動(dòng)模型

2014-12-09 12:57:19

AnySDK

2024-01-15 11:56:55

lintersESLint

2020-08-12 09:35:23

Docker工具開(kāi)源

2014-12-09 10:24:53

CrossApp開(kāi)源

2024-08-22 14:47:50

開(kāi)源Linux網(wǎng)絡(luò)抓包工具

2024-02-23 08:13:25

Excalidraw白板工具開(kāi)源

2023-08-08 14:56:27

ParcelRustDemo
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)