新聞

Next.js團隊釋出前端框架Next.js 16.3預覽版,開放開發者透過npm套件管理工具測試新版功能。官方特別強調16.3版本的Turbopack相關更新,包括降低開發期間的記憶體占用、讓正式建置流程可透過實驗設定使用檔案系統快取,並加入以Rust移植的React編譯器整合,以減少大型Next.js應用在開發與建置時的系統負擔。

Turbopack是Next.js近年開發的新一代打包工具,藉由增量編譯,重用先前完成的處理結果,讓開發期間的編譯時間主要取決於變更範圍,而不是每次都重新處理未變動的檔案與路由內容。雖然這種做法有助於減少處理器負擔,但過去也會把較多編譯結果留在記憶體中。當開發者同時開啟編輯器、型別檢查工具、程式檢查工具,以及近來常見的程式開發代理工具時,記憶體壓力會更明顯。

Next.js團隊表示,過去3個月已針對Turbopack記憶體使用進行調整,包括壓縮資料結構、減少不必要的資料保留,並新增記憶體快取淘汰機制。新版預設會搭配檔案系統快取,把部分曾經計算過的結果保存在磁碟,讓Turbopack不必在記憶體中持續保留所有曾開啟路由的快取內容。

根據官方測試,在編譯50條路由後,Vercel儀表板的記憶體用量由21.5GB降至2GB,nextjs.org則由4,600MB降至840MB。不過官方也說明,實際改善幅度會受到應用程式規模、開發期間觸及的頁面範圍,以及工作階段執行時間影響,因此不宜直接視為所有專案都能達到相同降幅。

新版也讓Turbopack的檔案系統快取可用於正式建置流程。該功能先前已用於開發模式,Next.js 16.3則可透過實驗設定,讓next build重用先前完成的計算結果,縮短後續編譯靜態資源所需時間。官方提到,持續整合環境可保留產生的.next目錄,讓下一次建置啟動時讀取既有快取,再處理新的變更。

Next.js 16.3預覽版也加入以Rust實作的React編譯器實驗整合。Next.js 16.0已支援React Compiler,但先前主要仰賴Babel轉換流程。官方表示,在大型React應用的早期測試中,原生編譯器可帶來約20%到50%的編譯時間改善,但這項功能目前仍需透過實驗設定啟用。