Next.js 16.3:Turbopack 内存回收与给 Agent 的版本文档
前端约 5 分钟阅读

Next.js 16.3:Turbopack 内存回收与给 Agent 的版本文档

Next.js 16.3 宣称 dev 长会话内存最多降约 90%。拆解 memory eviction、文件系统缓存,以及 AGENTS.md 如何把版本对齐文档喂给 coding agent。

cover

Next.js 16.3 在 8 月 3 日稳定发布。官方博客标题写得很克制,但数字有点夸张:长会话开发机内存最多能少大约 90%。Vercel 自己的 dashboard 从约 21.5GB 掉到约 2GB;nextjs.org 从约 4.6GB 掉到约 840MB。社区反馈里也有人说从 20GB 到 5GB。

这不是又一个“新特性清单”。它更像是在承认:大家在真实 monorepo 里开着 next dev 写一天,机器先崩的往往不是业务逻辑,是编译器状态一直堆在内存里。

内存为什么会堆成那样

Turbopack 的增量编译很能打,副作用是冷热路径的中间结果容易常驻 RAM。路由一多、会话一长,进程就变成“越开越胖”。以前只能重启 dev server,缓存热度也一起清掉。

16.3 默认打开两件事:

  1. Dev 文件系统缓存(16.1 引入,现在是默认行为)
  2. Memory eviction:把已经落盘的编译快照从内存里踢掉,需要时再从磁盘捞回来

配置项是 experimental.turbopackMemoryEviction,默认 'auto'。排查缓存问题时可以关掉:

js
/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    // false | 'auto' | 'full'
    turbopackMemoryEviction: false,
  },
};

export default nextConfig;

'auto' 会看上次 eviction 之后又堆了多少,以及系统内存压力;'full' 则是每次写盘都尽量腾空。我自己会先用默认值跑一周,再决定要不要动。

升级时我先盯什么

内存数字好看,不等于升级无痛。我更在意三条:

  • Dev 是否真的变轻:打开你们最大的 app,连续点 30~50 个路由,看任务管理器曲线是不是还无限爬升。
  • 文件系统缓存目录是否可写、是否被清理脚本误删:eviction 依赖落盘;CI 或 Docker 层若把缓存当临时垃圾扫掉,收益会打折。
  • 构建与类型检查时间:16.3 还吹了更快的 build / typecheck / render。别只信发布说明,用你们自己的 time next build 对比一次。

如果团队还卡在 Webpack 兼容层,先确认依赖有没有 webpack-only loader。Turbopack 默认已经不是实验开关了,历史债会在这里爆。

还有一个容易忽略的点:内存 eviction 会把冷模块卸掉,再访问时可能有一次从磁盘回载的卡顿。多数团队感觉不到;如果你在做“秒开所有路由”的 demo 录屏,先跑一遍预热,别把回载误判成回归。

本地磁盘也要留余量。文件系统缓存在大 monorepo 里并不小,把项目放在快要满的系统盘上,eviction 帮你省了 RAM,I/O 又会变成新瓶颈。WSL2 用户尤其注意:项目若在 /mnt/c,缓存读写会明显慢一截,能挪到 Linux 文件系统里就挪。

给 coding agent 的版本对齐文档

16.3 里我觉得更 quietly useful 的是:版本匹配的文档会写进本地包,再通过项目根目录的 AGENTS.md 指过去。

模型训练数据里的 Next 版本永远是旧的。你让 agent 改 App Router 缓存或 next.config,它经常搬出 13/14 时代的写法。官方现在的做法是:装好 Next 后,本地 node_modules 里就有对应版本的 docs 镜像;next dev 在检测到 agent 环境时,会维护 AGENTS.md / CLAUDE.md 里的托管块,把 agent 指到这份本地文档。

新项目脚手架会直接生成;老项目在 16.3+ 上跑起来,一般也会补上这块。你自己写的说明可以留在托管块外面,别和官方块抢同一段。

配套的还有:他们在逐步退役那些只为了“把文档塞进 agent 上下文”的旧 Skills,因为现在文档就在包里。对前端团队来说,含义很直接——仓库里那份 AGENTS.md 不再是装饰,而是 agent 的默认入口。

和“生成式 UI”并行时更要想清楚

昨天热榜还在聊可生成落地页和 Tailwind 骨架。今天这版 Next 则在补另一头:骨架可以生成,开发机扛不住长会话就没意义。

我的顺序会是:

  1. 先把 16.3 的内存与缓存行为验证完;
  2. 再补 AGENTS.md,写清你们项目的路由约定、数据获取边界、禁止事项;
  3. 最后才把生成式 UI 流程接到 agent 上。

否则 agent 一边按错版本文档写代码,一边把你的 32GB 笔记本推到 swap,体验会很差。

小结

Next.js 16.3 的核心不是又一个导航 API,而是 dev 长会话终于可以不靠重启续命,以及 把正确版本的文档塞进 agent 工作流。内存数字因项目而异,别把 90% 当 KPI;用你们最大的路由图量一次才算数。

如果你还在 15.x 或 16.2,且 dev 内存已经让人烦,这版值得排进下周升级窗口。读官方说明时优先看 Next.js 16.3 和 Turbopack memory eviction。

图:长会话下的编译缓存从内存落盘再按需回载

inline

相关文章