Bun是一個講求快速JavaScript執行環境與多合一工具包,可用於執行、建置、測試和除錯JavaScript與TypeScript程式,目前Bun釋出1.0正式版本,已經可以用於生產環境中。

之所以會有Bun的出現,官方提到,Node.js經過14年的發展,導致工具在疊床架屋後變得緩慢且複雜。而Bun的目標就是要在不犧牲JavaScript優點的同時,消除Node.js目前存在的缺點。

Bun的啟動速度是Node.js的4倍,特別是執行需要轉譯的TypeScript,速度更是比Node.js快上一截,而且由於Bun與Node.js高相容性,大多數現有Node.js應用程式和Npm套件可以直接用Bun執行,如此Bun便可以作為替代品,開發者可以更為簡單地將程式從Node.js過渡到Bun。

不同於Node.js使用Google的V8引擎,Bun選擇使用Apple的WebKit引擎,而且Bun內建了JavaScript轉譯器,可以直接執行JavaScript、TypeScript和JSX/TSX檔案,不需要使用外部工具轉換,因此開發者更直接地執行這些程式碼。

而且由於Bun本身是一個多合一工具包,就算開發者不將Bun當作執行環境使用,Bun的套件管理也可以加速工作流程,在套件安裝速度上都遠超過Npm、Yarn和Pnpm(下圖)。目前Bun在macOS和Linux已達生產就緒,官方也開始在Windows提供原生支援,但現在仍處於實驗階段。

根據Bun官網列出的資料(下圖),Bun在各種工作負載效能表現良好,像是伺服器端渲染React,另一個JavaScript執行環境Deno的速度雖然是Node.js的2倍以上,但Bun在伺服器端渲染React的速度更是Node.js的5倍。

由於Node.js發展已久存在許多技術債,陸續出現試圖解決Node.js問題與限制的專案,像是Node.js之父Ryan Dahl就另外創建了Deno,實現自己理想中的工具,而Bun也是這樣的嘗試,期望能提供一個更完善快速的JavaScript執行環境。

熱門新聞

Advertisement