{T}

Turbopack 与 Rspack

学习目标

  • 理解 Rust 重写构建工具的动力(速度)
  • 区分 Turbopack 与 Rspack 的定位差异
  • 知道何时选择它们而非 webpack / Vite

为什么用 Rust 重写

webpack 的 JS 运行时在大项目增量构建上到达瓶颈。Rust 工具链(基于 SWC / NAPI)在解析、转译、增量缓存上数量级提速,催生了两款工具。

Turbopack

Turbopack 是 Next.js 官方用 Rust + Turborepo 引擎写的打包器,原生服务于 App Router:

js
// next dev --turbo
export default { experimental: { turbo: {} } };

特点是按需编译图(只构建被请求的路由与模块),增量 HMR 极快。当前更适合 Next.js 项目,通用框架集成仍在演进。

Rspack

Rspack 由字节开源,目标是兼容 webpack 配置与 loader 生态,让存量 webpack 项目以最小改造获得 Rust 速度:

js
// rspack.config.js 几乎与 webpack.config.js 同形
module.exports = { context: __dirname, entry: './src/index.js', builtins: { react: { runtime: 'automatic' } } };

它适合「不想重写配置、只想提速」的大型 webpack 工程。

对比

工具定位配置兼容适用
Vite通用、开发体验全新配置新项目
TurbopackNext.js 原生框架内Next.js App Router
Rspackwebpack 平替兼容 webpack存量大型工程

总结

新一代构建工具用 Rust 解决速度瓶颈:Turbopack 绑定 Next.js 体验,Rspack 兼容 webpack 生态。选型的本质是「新项目 vs 存量工程」。

继续阅读