比 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