Next.js 15.3 包含以下重要更新:
- Turbopack 构建支持 (alpha):生产构建速度提升,通过 8000+ 测试用例(99% 通过率)
- 社区版 Rspack 支持 (实验性):兼容 Webpack 的替代打包方案
- 客户端埋点钩子:实现早期监控与分析配置
- 导航钩子:通过
onNavigate
和useLinkStatus
控制路由行为 - TypeScript 插件优化:增强对大代码库的支持
立即升级,或通过以下命令新建项目:
Turbopack 构建支持 (alpha)
自 next dev --turbopack
稳定版发布后,超过 50% 的 Next.js 15 开发会话已在使用 Turbopack。
本次更新包含 next build --turbopack
的 alpha 版本,将本地开发的性能优势延伸至生产构建。
升级至 15.3 后可通过以下命令体验:
功能支持
当前 next build
的集成测试通过率达 99.3%。您可通过 areweturboyet.com 追踪进度。若您的应用已兼容 dev
模式的 Turbopack,则无需修改即可用于生产构建。
Turbopack 构建目前处于 alpha 阶段,不建议在关键生产环境使用。您可在预览/测试环境或本地构建中观察打包体积与性能差异。
我们正通过作用域提升、分块优化等技术持续缩小性能差距。
构建性能
在 Vercel 大型单体仓库与早期合作伙伴代码库中的测试表明,Turbopack 架构相比原 Webpack 方案能随 CPU 核心数增加线性提升性能:
- 4 核:比 Webpack 快 28%
- 16 核:比 Webpack 快 60%
- 30 核:比 Webpack 快 83%
结合实验性持久化缓存技术,构建时间可进一步缩短。我们将在后续版本中公布更多细节。
生态兼容
我们正与 Sentry 等常用工具合作确保其兼容 next build --turbopack
。工具开发者可通过 @leerob on X 联系我们进行适配。
反馈渠道
欢迎通过以下渠道提交使用反馈:
- GitHub 讨论区 提交常规反馈
- GitHub Issues 报告可复现问题
稳定版 Turbopack 配置(next.config.ts
)
Turbopack 配置已从 experimental.turbo
迁移至顶层 turbopack
键:
为保持兼容性,experimental.turbo
配置将持续支持至 Next.js 下个主版本。
完整配置选项请参阅 Turbopack API 文档。
社区版 Rspack 支持(实验性)
Rspack 团队已为 Next.js 开发社区插件。
该方案为需要 Webpack API 完全兼容但暂无法迁移至 Turbopack 的用户提供了编译加速方案。我们将继续为 Webpack 用户提供渐进式迁移路径。
此插件虽非官方维护,但我们正与 Rspack 团队合作,在 SWC 和 Lightning CSS 等底层工具上共享技术成果。当前测试通过率约 96%。
客户端埋点钩子
通过根目录下的 instrumentation-client.js|ts
文件,可在应用前端代码执行前注入监控与分析逻辑:
文件位置规则与服务端埋点相同。
详见 instrumentation-client 文件文档。
导航钩子
Next.js 15.3 引入的新导航钩子增强了客户端路由控制能力:
onNavigate
作为 Link
组件的新属性,该事件处理器专为单页应用(SPA)导航设计,可通过 preventDefault()
取消导航,适用于实现转场动画、路由守卫或精准的导航分析。
与通用 onClick
不同,onNavigate
仅在实际页面跳转时触发。
详见 onNavigate
文档。
useLinkStatus
该客户端组件钩子返回的 pending
布尔值可标识导航状态,其设计灵感来自 React 的 useFormStatus
,特别适用于预取禁用或缺少加载状态的场景。
在 <Link>
组件嵌套结构中,可通过该钩子创建响应式加载指示器。
详见 useLinkStatus
文档。
TypeScript 插件性能优化
Next.js TypeScript 语言服务插件(LSP)现已显著提速。
该插件提供包括服务端/客户端边界校验、组件属性提示、配置自动补全等智能感知功能。在超大型代码库中,优化后的插件响应速度提升约 60%,且不再出现冻结或崩溃问题。
其他变更
- [新增] 支持在
images.remotePatterns
中使用new URL()
(#77692) - [新增] 视口配置现与
metadata
分离 (#77427) - [新增] 添加
unstable_dynamicOnHover
选项 (#77866) - [新增] 支持 Pinterest Rich Pins (#76988)
- [优化] 路由处理器中 redirect 后的 revalidate 生效 (#77090)
- [优化] 服务端操作中 revalidate 的强一致性保证 (#76885)
- [优化] 升级
sharp
加速 PNG 转 AVIF (#77839)
贡献者
Next.js 由 3000+ 开发者共同打造。本版本特别感谢:
- Next.js 团队成员(名单略)
- Turbopack 团队成员(名单略)
- 文档团队成员(名单略)
同时感谢所有社区贡献者(名单略)的鼎力支持!