知名框架Next.js開發公司Vercel,對外開源一個稱為Turbopack的高速網頁打包工具,適用於各種框架,現在開發者可以率先在Next.js 13試用Turbopack的Alpha測試版。Turbopack專案由知名網頁打包工具Webpack的創造者Tobias Koppers帶領開發,目的是要取代Webpack。

Turbopack是以程式語言Rust開發,Vercel提到,每次他們將原本基於JavaScript的工具移植到Rust的時候,就會看到巨大的效能改進。Next.js換掉JavaScript轉譯器Babel,使轉譯速度提高達17倍,Vercel接著又換掉了Next.js的JavaScript解析器Terser,加快了極簡化(Minification)的速度達6倍,同時還減少載入時間和頻寬使用。

但官方提到,Next.js 13綑綁應用程式的速度還受到Webpack的影響。目前Webpack已經被下載超過30億次,是開發者建構網頁不可或缺的一部分,但是該工具的執行速度限制了Next.js 13,為此,Vercel以Rust開發了Turbopack,希望能夠取代Webpack,改進網頁應用程式打包速度。

Turbopack建構在新的增量架構之上,能以非常快的速度打包應用程式,特別是針對大型應用程式,更新速度是前端工具Vite的10倍,而且比Webpack還要快700倍,官方提到,越大的應用程式速度差異越大,甚至可以比Vite快20倍。

Turbopack只會綑綁最少所需的開發資源,因此啟動速度非常快,在具有3,000個模組的應用程式,Turbopack只需要1.8秒就能完成啟動,而Vite需要11.4秒。官方揭露Turbopack快速的原因,Vercel參考Turborepo和Google Bazel的開發經驗,透過快取來避免重複執行相同工作。

Turbopack建立在開源Rust增量記憶框架Turbo之上,Turbo能夠快取程式中任何函式的結果,當程式再度執行時,除非函式的輸入變更,否則函式不會重新執行。這個基礎架構使得開發者的程式,能夠從函式層級跳過大量的工作,再加上Rust高效能的運作速度,Turbopack因此能夠高效運作。

Vercel將Turbopack用於Next.js 13開發伺服器上,將會使熱模組取代(Hot Module Replacement,HMR)更快速,且Turbopack原生支援React伺服器元件,以及TypeScript、JSX和CSS等。另外,Turbopack也將會被應用於本地和雲端Next.js產品建置。

熱門新聞

Advertisement