Next.js 与 Turbopack¶
Next.js 16+ 默认在本地开发中使用 Turbopack。Turbopack 是用 Rust 编写的增量打包器,可大幅加快开发启动时间和热更新。
使用时机¶
- Turbopack(默认开发): 用于日常开发。尤其在大规模应用中,冷启动和 HMR 更快。
- Webpack(遗留开发): 仅在遇到 Turbopack 的 bug,或依赖仅支持 webpack 的插件时使用。使用
--webpack(或根据 Next.js 版本使用--no-turbopack)禁用。请查看发布文档。 - 生产环境: 生产构建行为(
next build)可能根据 Next.js 版本使用 Turbopack 或 webpack。请查看所用版本的官方 Next.js 文档。
适用场景:开发或调试 Next.js 16+ 应用、诊断开发启动或 HMR 延迟,或优化生产包时。
工作原理¶
- Turbopack: Next.js 开发用增量打包器。由于使用文件系统缓存,重启会大幅加快(例如大型项目中可快 5 到 14 倍)。
- 开发默认: 从 Next.js 16 开始,除非禁用,否则
next dev会使用 Turbopack 运行。 - 文件系统缓存: 重启会复用之前的工作成果。缓存通常位于
.next下。基本使用无需额外配置。 - 包分析器(Next.js 16.1+): 使用实验性包分析器检查输出并发现重量级依赖。通过配置或实验性标志启用(参见所用版本的 Next.js 文档)。
示例¶
命令¶
使用方法¶
本地开发时,使用 Turbopack 运行 next dev。使用包分析器(参见 Next.js 文档)优化代码分割,并减少大型依赖。尽可能将 App Router 和服务器组件作为最佳实践使用。
最佳实践¶
- 为了获得稳定的 Turbopack 和缓存行为,请继续使用最新的 Next.js 16.x。
- 如果开发缓慢,请确认正在使用 Turbopack(默认),并且缓存没有被不必要地清除。
- 对于生产包大小问题,请使用所用版本的官方 Next.js 包分析工具。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC