Turbopack
Turbopack 需要放在 Next.js 生态里理解。它不是一把独立流行起来的通用构建工具,而是 Next 路线里最重要的下一代 bundler。
它在解决什么
核心还是老问题:
- 大型项目 dev 反馈越来越慢
- HMR 变钝
- 构建链路复杂
- Next 项目需要一套更强的增量打包能力
为什么它重要
Next 16 已经把 Turbopack 设为默认 bundler。这意味着它不再只是“实验功能”,而是 Next 主线工程体验的一部分。
在项目里怎么用
最常见的接入方式,不是单独安装一整套 Turbopack 项目,而是直接在 Next.js 里使用。
next dev --turbopack
一个更进阶的 Next 配置参考
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
experimental: {
optimizePackageImports: ['lodash-es', 'date-fns'],
},
turbopack: {
resolveAlias: {
'@': './src',
},
rules: {
'*.svg': {
loaders: ['@svgr/webpack'],
as: '*.js',
},
},
},
}
export default nextConfig
这里更该留意的,不是配置项名字,而是:Next 项目里原本靠 Webpack 做的事情,迁到 Turbopack 之后边界还在不在。
前端团队更该关心什么
1. 和 Webpack 的差别
Next 老项目里,很多构建习惯和兼容假设都来自 Webpack。迁移到 Turbopack 时,最值得看的不是“命令换了没有”,而是:
- 自定义构建行为是否还能平移
- 某些插件链是否需要重新评估
- 开发态和生产态能力成熟度是否一致
2. 开发体验
Turbopack 的第一价值,通常体现在开发态:
- 启动更快
- 增量更新更轻
- 大项目里反馈更及时
3. 与 Next 配置的边界
项目里更常见的不是“单独配 Turbopack”,而是确认这些能力和它如何相处:
next.config.ts- 路由分包
- 图片和字体处理
- Server Components
- App Router 构建链
一个更实际的判断
Turbopack 本身不是孤立的一层。它会和这些内容一起出现:
- App Router
- Server Components
- 路由分包
- Next 构建产物
- 自定义配置边界
所以这篇更适合和 Next.js 专题 互相参照着看。