Next.js 16.3 Preview 于 2026 年 6 月底以 @preview dist-tag 发布到 npm,稳定版仍在 16.2 系列。这一版的重心全在 Turbopack 上:四项改动,各自针对一个具体的痛点。
一、开发服务器内存降 90%:Memory Eviction
16.3 之前,Turbopack 的内存缓存只增不减——开发会话越长,内存占用越高。
16.3 引入了 Memory Eviction:把不活跃的路由的编译缓存从内存里驱逐到磁盘,需要时再读回来。这个特性依赖 16.1 里引入的文件系统持久化能力,两者现在默认都开启。
实测数据(Vercel 自家项目):
| 项目 | 16.2 内存 | 16.3 内存 | 降幅 |
|---|---|---|---|
| vercel.com 控制台(50 个路由) | 21.5 GB | ~2 GB | ~90% |
| nextjs.org | 4,600 MB | 840 MB | ~82% |
对长时间跑着 dev server 的场景来说,这是一个感知明显的改进——内存不会因为开了一天而占满。
Trade-off 说清楚:磁盘缓存换内存的本质是 CPU 和内存的取舍。驱逐后的路由再次访问时需要从磁盘读回缓存,有一次小的延迟开销。对于 CPU bound 的场景(本机 CPU 很快),效果更好;对于磁盘 I/O 很慢的环境(网络磁盘、慢 HDD),需要自己评估。
二、构建持久化缓存:Persistent Cache for Builds
Turbopack 的文件系统缓存此前只用于 next dev,16.3 把它带进了 next build。
原理:next build 开始时,Turbopack 先扫描磁盘上已有的 .next 缓存目录,把上次构建里没变的编译结果直接读进来,只重新计算真正改动过的部分。
启用方式(需要在 next.config.js 里开 flag):
// next.config.js
module.exports = {
experimental: {
turbopackFileSystemCacheForBuild: true,
},
}
官方数据:有缓存的构建最快可以快 5.5 倍。
在 CI 里利用这个特性的做法是把 .next 目录作为 cache artifact 在 job 间传递:
# GitHub Actions 示例
- uses: actions/cache@v4
with:
path: .next
key: nextjs-${{ hashFiles('**/package-lock.json') }}-${{ github.sha }}
restore-keys: nextjs-${{ hashFiles('**/package-lock.json') }}-
第一次构建正常跑,之后每次构建都能复用上次的缓存,只编译增量变化。对于改动范围小的 PR,构建时间会大幅缩短。
三、import.meta.glob 支持
import.meta.glob 是 Vite 的 glob 导入语法,让你可以批量导入匹配模式的文件:
// 导入所有组件
const components = import.meta.glob('./components/**/*.tsx')
// 立即导入(eager)
const icons = import.meta.glob('./icons/*.svg', { eager: true })
在 Next.js 16.3 之前,这个语法只能在 Vite 项目里用;依赖它的库(比如一些图标系统、本地化工具)在 Next.js 里无法正常工作。
16.3 的 Turbopack 把 import.meta.glob 接进了文件监听系统:增删匹配文件时,dev 模式自动触发重编译,行为和 Vite 完全一致。这关闭了一个长期存在的移植性缺口。
四、Rust React 编译器(实验性)
React 团队发布了 React Compiler 的 Rust 原生移植版,16.3 把它接入了 Turbopack。
背景:React Compiler 会分析组件代码,自动插入 memoization,省去手写 useMemo / useCallback 的负担。此前的 JS 版在大型项目里会是编译时的一个明显开销;Rust 版大幅降低了这个开销。
早期测试(基于 v0 等大型 React 项目):编译时间提升 20–50%。
启用方式(experimental):
// next.config.js
module.exports = {
experimental: {
reactCompiler: {
compilationMode: 'annotation', // 或 'all'
},
},
}
注意目前是实验性,不建议在生产环境默认开启,但值得在开发环境评估一下。
升级方式
16.3 目前在 @preview tag 下,不是默认安装的稳定版:
npm install next@preview react@preview react-dom@preview
想留在稳定版的话,继续用 16.2 即可;等稳定版发布后,16.3 的这些改动会一并进来。
四项改动,两个已默认开启(内存驱逐、文件系统缓存),一个需要 flag(构建持久化缓存),一个还在实验阶段(Rust React 编译器)。从 import.meta.glob 的支持来看,Turbopack 也在持续补齐 Vite 的生态兼容性。
原文:Turbopack: What’s New in Next.js 16.3,发布于 Next.js 官方博客,Vercel 出品,2026 年 6 月。
关于
关注我获取更多资讯