發(fā)布于:2021-01-08 09:50:07
0
104
0
JavaScript捆綁可能需要很長時間,但是一定要這樣嗎?esbuild創(chuàng)建為一個業(yè)余項目,表明JS捆綁不必太慢。讓我們看一下這個項目,它的基準(zhǔn)測試結(jié)果如何比較,看看它是如何工作的,以及檢查webpack以及期待已久的Webpack 5到來的議程。
JavaScript捆綁涉及分隔文件,以減少加載網(wǎng)頁所需的服務(wù)器請求的數(shù)量和大小。有許多用于JavaScript的構(gòu)建工具。在webpack,Gulp和宗地之間,生態(tài)系統(tǒng)充滿了選擇。
一個新的JS捆綁程序和壓縮程序可作為一個實驗性愛好項目使用,但是esbuild有所不同。 在Golang的幫助下,它比其他方法快得多。
讓我們快速瀏覽一下此JS工具,并期盼一下webpack的議程。
快速的表現(xiàn)
根據(jù)基準(zhǔn)測試,esbuild比其他常用的JavaScript捆綁器(包括webpack,匯總和包裹)快10到100倍,并且輸出大小大致相同。(使用來測試基準(zhǔn) make bench-three。)
讓數(shù)字說明一切:
esbuild速度的關(guān)鍵在于其選擇的語言。它是用Go語言編寫的。由于Go是一種快速的語言,因此它使捆綁程序可以利用它并避免速度下降。
根據(jù)其README,它當(dāng)前支持:
CommonJS模塊
ES6模塊
使用以下方式綁定ES6模塊的靜態(tài)綁定 --bundle
完全縮小 --minify (空格,標(biāo)識符和修飾符)
--sourcemap 啟用時全面支持源地圖
JSX到JavaScript的.jsx 文件轉(zhuǎn)換
通過編譯時標(biāo)識符替換 --define
使用中的browser 字段進(jìn)行 路徑替換 package.json
自動檢測 baseUrl in tsconfig.json
測試一下
提醒您,此捆扎機不應(yīng)在生產(chǎn)中使用,也未在生產(chǎn)環(huán)境中進(jìn)行過測試。創(chuàng)作者說這是一個在冬季休假期間創(chuàng)建的愛好項目。因此,它包括潛在的錯誤以及新代碼和實驗項目的所有相關(guān)風(fēng)險。
但是,請隨意嘗試一下,即使只是作為實驗來了解JS工具可能有多快。
查看GitHub上的安裝指南以及如何使用命令行界面。
展望webpack 5
盡管Webpack性能相對較慢,但它通常是JavaScript應(yīng)用程序最常用的捆綁器,尤其是在生產(chǎn)中,它是JavaScript 2019開發(fā)人員調(diào)查中列出的頂級JS工具之一。它是一個模塊捆綁器,用于捆綁JavaScript文件以供在瀏覽器中使用,創(chuàng)建 bundle.js并擁有一個具有大型生態(tài)系統(tǒng)的可自定義插件界面。
Webpack 5即將推出,并將包含一些新的實驗功能。Sergey Melyukov撰寫的文章系列的開始將分解v5中的預(yù)期。閱讀第一個條目并探索資產(chǎn)模塊。
截至目前,尚未確定webpack 5的發(fā)布日期,因為它目前處于測試階段,并且正在收集用戶反饋。此版本具有所有主要的更改和功能。因此,現(xiàn)在剩下的就是實現(xiàn)更好的穩(wěn)定性和進(jìn)一步的測試。
查看更改日志以獲取有關(guān)即將推出的新功能的更多信息。
作者介紹