比 Vite 快 10 倍的構建工具:Turbopack!

Vercel 的使命是提供代碼創造者在靈感迸發瞬間所需的速度和可靠性。去年,我們專注於提升 Next.js 打包 App 的速度。

每次我們從基於 JavaScript 的工具轉移到基於 Rust 的工具時,我們都能看到巨大的改進。我們遷移了 Babel,提升了 17 倍的速度。我們替換了 Terser,壓縮的速度提高了 6 倍,從而減少了加載時間和帶寬的使用。

還有一個障礙:Webpack。Webpack 已被下載超過 30 億次。它已經成爲構建 Web 的不可分割的一部分,但現在是時候加速,無限制擴展了!

今天,我們推出 Turbopack[1]:Webpack 的接班人。

由 Webpack 的創始人 Tobias Koppers 牽頭創立,Turbopack 將會是 Web 下一代的打包工具。我們將使用高性能的工具來構建它,在未來對所有的框架開放。

在 Next 中嘗試 Turbopack 的 Alpha 版本:next dev --turbo

Turbopack 有多快

Turbopack 建立在新的增量體系結構上,以獲得最快的開發體驗。在大型應用中,它展示出了 10 倍於 Vite 的速度,700 倍於 Webpack 的速度。在更大的應用中,差異更加巨大 —— 通常比 Vite 快 20 倍

Turbopack 在開發環境只打包需要的最小資產,所以啓動飛快。在一個 3000 個模塊的應用裏,Turbopack 只花了 1.8 秒啓動,Vite 花了 11.4 秒。

在文檔 [2] 裏查看關於 Turbopack 打包和查看 benchmarks 的信息。

爲什麼 Turbopack 這麼快?

Turbopack 的架構吸取了 Turborepo 和 Google 的 Bazel 等工具的經驗教訓,兩個工具都專注於使用緩存,永遠不會重複相同的工作。

Turbopack 是建立在 Turbo 之上的,Turbo 是基於 Rust 的開源、增量記憶化框架。Turbo 可以緩存程序中任何函數的結果。當程序再次運行時,函數將不會重新運行,除非它的參數改變了。這種粒度的架構使您的程序能夠在函數級別跳過大量工作。

增量響應式系統,又有 Rust 的速度加持?Turbopack 是不可阻擋的!

在 Turbo 的講解 [3] 裏學習更多。

Turbo 的未來

首先,Turbopack 將用於 Next.js 的開發服務器。它將爲閃電般快速的 HMR 提供動力,並天然支持 React Server Component,Typescript,JSX,CSS 等也一樣。

Turbopack 最終也會賦能 Next.js 的生產環境構建,無論是本地還是雲端。我們會在你的整個團隊裏共享 Turbo 的緩存,用 Vercel Remote Caching[4]。

Webpack 用戶還可以期望未來可以增量遷移到 Rust-based 的 Turbopack 特性。

我們對 Turbo 生態系統的未來感到更加興奮,我們推動它來幫助你更快速的迭代,在靈感到來時更好的創造。

參考資料

[1]

Turbopack: https://turbo.build/

[2]

文檔: https://turbo.build/pack/docs/core-concepts

[3]

Turbo 的講解: https://turbo.build/pack/docs/core-concepts

[4]

Vercel Remote Caching: https://vercel.com/docs/concepts/monorepos/remote-caching

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Zmlq7BhzcftD1Oc0OkDO5A