卷?能有搞開源打包工具的大佬們卷?

最近,Parcel2發佈beta3版本。工具

該版本最大的更新是:替換底層所用的JS編譯器,從Babel替換爲SWC,使總體編譯速度較以前快了10x倍。性能

SWC是用 Rust寫的 JS編譯器,目標是替代 Babel。他的做者是97年生的 강동윤,他寫 swc時上大二。

강동윤

被速度所累的parcel

爲了與打包工具老大哥Webpack差別化競爭,Parcel零配置做爲他的賣點(對標Webpack繁瑣的配置)優化

Parcel

其中,高級ES語法會根據開發者提供的browserslist目標版本降級爲對應ES5語法。網站

非標準語法,相似JSXTS,開發環境特性,相似React Fast Refresh都是開箱即用的。ui

這一切的實現,都創建在基於BabelJS編譯器上。spa

JS相比Rust語言層面的速度劣勢,是Babel再怎麼優化也沒法彌補的。code

因而,便有了開篇提到的替換JS編譯器。three

Parcel團隊表示, SWCBabel快20x倍

值得玩味的是,在提供benchmark秀性能時,Parcel使用了esbuildbenchmark開發

esbuild使用10份 threeJS的生產包,對比不一樣打包工具在默認配置下的打包速度做爲 benchmark

benchmark

速度之卷

esbuild是一個用Go寫的JS打包工具,於2020年1月開源。他的做者是FigmaCTO Evan Wallacerem

Evan Wallace

一經開源,沒有任何花裏胡哨的新功能,上來就是硬剛編譯速度。

成績斐然:

能夠看到Parecel2倒數第三。

而老大哥Webpack5之因此沒有倒數第一,是由於倒數第一是Webpack4

Evan隨後又更新了benchmark

雖然Parcel的優點是:極簡、零配置。但被這麼拉出來比速度,結果還如此慘烈。

想必Parcel團隊成員內心是極度憋屈的。

因而,兄弟們,其餘事情先放一放,讓咱們一塊兒卷編譯速度!

通過幾個月開發,終於有了開篇提到的beta3。並且必須用你esbuildbenchmark跑一遍,找回場子!

JS打包工具的降維打擊

事實上,在Webpack已經發展多年的今天,可以突出Webpack重圍,佔有一席之地的打包工具,都走着差別化競爭的路線。

Google工程師Surma和其餘人一塊兒開發的打包工具評價網站tooling.report上能夠看到:

Webpack是支持功能最全面的。其餘主流打包工具則各有側重。

劇本的走向本應是:

Webpack繼續走他六邊形戰士的路線

其餘打包工具各自安好,走差別化路線。

然而,esbuild的異軍突起,對這些工具形成了降維打擊。

編譯速度在開發時確實是剛需。

Parcel不是第一個,也毫不是最後一個做出改變的工具。

聰明的Vite

有人擁抱變化,有人被迫接受變化。

Vite則說:卷bundle速度?那我在開發時採用No-Bundle方案,不和大家捲了。

編譯速度對你來講重要麼?歡迎留下你的討論。

相關文章
相關標籤/搜索