前端工程化 词条目录
前端Wiki/词条/Turbopack

Turbopack

定义Vercel 出品的 Rust 增量打包器,定位是 webpack 的继任者,Next.js 13+ 的默认开发服务器

Turbopack 由 webpack 作者 Tobias Koppers 主导,用 Rust 重写,目标是同时拿下「webpack 的生态兼容」与「esbuild 的速度」。它的核心是函数级缓存与增量重算:任意文件变动只重新计算受影响的那一小段图,开发服务器冷启动从分钟级压到秒级。Rust 天然的内存安全与无垃圾回收暂停特性,让它在处理超大规模依赖图时也不会像 Node 工具那样出现性能悬崖。

它对 webpack 生态做了最大程度的兼容:loader 与部分插件可直接复用,迁移成本远低于换到 Vite。目前它仍绑定 Next.js 优先(稳定版仅覆盖 dev server 与部分构建场景),Turbo 任务编排(turbo run)则已独立支撑 monorepo 的任务缓存。对已上 webpack 的巨型项目,这是目前改造成本最低的现代化路径:先换引擎,再逐步替换周边生态。

JavaScript
// turbo.json —— Turbopack 的 monorepo 任务编排配置
{
  "$schema": "https://turbo.build/schema.json",
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],       // 先构建依赖的包
      "outputs": ["dist/**", ".next/**"]
    },
    "test": { "dependsOn": ["build"], "outputs": [] },
    "dev":  { "cache": false, "persistent": true }
  }
}

// package.json 脚本里直接用:
// "scripts": { "dev": "next dev --turbo", "build": "next build --turbo" }
// 缓存命中时构建毫秒级完成,CI 时间大幅缩短
⚠ 常见误区
🔗 相关词条webpack 核心概念Vite 与 esbuild
← 返回来源章节Vite 与 esbuild