Turbopack 由 webpack 作者 Tobias Koppers 主导,用 Rust 重写,目标是同时拿下「webpack 的生态兼容」与「esbuild 的速度」。它的核心是函数级缓存与增量重算:任意文件变动只重新计算受影响的那一小段图,开发服务器冷启动从分钟级压到秒级。Rust 天然的内存安全与无垃圾回收暂停特性,让它在处理超大规模依赖图时也不会像 Node 工具那样出现性能悬崖。
它对 webpack 生态做了最大程度的兼容:loader 与部分插件可直接复用,迁移成本远低于换到 Vite。目前它仍绑定 Next.js 优先(稳定版仅覆盖 dev server 与部分构建场景),Turbo 任务编排(turbo run)则已独立支撑 monorepo 的任务缓存。对已上 webpack 的巨型项目,这是目前改造成本最低的现代化路径:先换引擎,再逐步替换周边生态。
// 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 时间大幅缩短