Next.js 13.5 發(fā)布:提高開發(fā)速度、性能改進(jìn)及修復(fù) 438 個(gè) Bug!
大家好,我是五月君,Next.js 13.5 版本于本周發(fā)布,從官方的發(fā)布博客看,不像 13.4 帶了很多新功能。本版本主要側(cè)重于性能優(yōu)化,例如提高了本地服務(wù)器啟動(dòng)速度、HRM(熱更新)速度、減少了內(nèi)存占用以及 438 個(gè) bug 的修復(fù)(這個(gè) Bug 數(shù)量是真的不少看來用的人也不少哈~)。
開發(fā)環(huán)境速度慢,你是否有遇到?
之前使用 Next.js 13.4 版本,開發(fā)環(huán)境隨著模塊數(shù)量的增多,特別消耗內(nèi)存,速度也很慢(生產(chǎn)環(huán)境似乎沒有這個(gè)問題)當(dāng)時(shí)的方案是升級(jí)到 13.4.8 之上會(huì)好很多,但還有優(yōu)化的空間,因?yàn)檫€是不能和 Vite 這種閃電般的速度比擬!詳情參見這個(gè) Issue 的討論 https://github.com/vercel/next.js/issues/48748。
不過現(xiàn)在可以考慮升到 13.5 版本測(cè)試下了。
13.5 提升了本地開發(fā)性能和可靠性
以下是 Next.js 13.5 對(duì)于本地開發(fā)性能和可靠性的提升:
- 本地服務(wù)器啟動(dòng)速度提高了22%:通過 App & Pages Router 實(shí)現(xiàn)更快的迭代。
- HMR(Fast Refresh)速度提高了29%:在保存更改時(shí)進(jìn)行更快的迭代。
- 內(nèi)存使用減少了40%:在運(yùn)行 next start 時(shí)測(cè)得。
- 優(yōu)化的包引入:在使用常見圖標(biāo)和組件庫(kù)時(shí)進(jìn)行更快的更新。
- next/image 改進(jìn):新增 <picture>、藝術(shù)方向以及暗模式支持。
- 修復(fù)了超過 438 個(gè) Bug!
性能提升主要來自于以下優(yōu)化措施(這些了解即可,對(duì)于開發(fā)者只有一個(gè)感受,“快” 就對(duì)了):
- 通過緩存或最小化緩慢操作來減少工作量。
- 優(yōu)化昂貴的文件系統(tǒng)操作。
- 在編譯期間更好地增量遍歷樹。
- 將不必要的阻塞同步調(diào)用移到惰性執(zhí)行。
- 自動(dòng)配置大型圖標(biāo)庫(kù)。
Turbopack 還處于 Beta 階段
之前 “號(hào)稱比 Vite 快 10 倍的 Turbopack” Next.js 團(tuán)隊(duì)還正在進(jìn)行開發(fā)以進(jìn)一步提高性能,目前 Turbopack 還處于 Beta 階段,只支持 next dev,不支持 next build。
之前因?yàn)槭褂?v13.4 在開發(fā)模式下太慢,也采用 Turbopack 做了測(cè)試,還是沒能解決問題,還遇到了一些兼容性問題,也可能是筆者的使用姿勢(shì)不對(duì)?