介绍 Turbopack :基于 Rust 的 Webpack 继任者

941 阅读3分钟

比Vite快20倍?比webpack快700倍?风头正盛的独角兽 Vercel 今天(22.10.25)官宣并开源了基于 Rust 的新一代打包工具 —— Turbopack,它是否能延续 Next.js 和 socket.io 等项目的辉煌呢?本文是对其官网文章的翻译。

Vercel 公司的愿景就是为创新者提供在灵感瞬间创造所需的速度和可靠性。去年,我们专注于加快使用 Next.js 应用的打包方式(bundle)。

每次我们从基于 JavaScript 的工具转移到基于 Rust 的工具时,都会看到巨大的改进。我们不再使用 Babel ,这导致 转译速度提高 了 17 倍。我们替换了 Terser,它使压缩速度提高了 6 倍,以减少加载时间和带宽使用。

还有一个障碍:Webpack。Webpack 已被下载超过30 亿次。它已成为构建 Web 不可或缺的一部分,但现在是时候为 webpack 时代画上句号了。

今天,我们将推出Turbopack:我们的 Webpack 继任者。

logo

在 Webpack 的创建者 Tobias Koppers 的带领下,Turbopack 将成为 Web 的下一代打包工具。通过开源Turbopack,我们希望它能被打造成为最强性能的打包工具,并在未来适用于所有框架。

立即在 Next.js 13 中试用 Turbopack 的 alpha 版本 next dev --turbo

Turbopack 的速度有多快?

Turbopack 建立在新的增量架构上,以提供最快的开发体验。在大型应用程序上,它显示更新速度比 Vite 快 10 倍,比Webpack 快 700 倍。在更大的应用程序上,差异更大——通常比 Vite 快 20 倍

Turbopack 只捆绑开发所需的最少资源,因此启动时间非常快。在具有 3,000 个模块的应用程序上,Turbopack 需要 1.8 秒才能启动,而 Vite 需要 11.4 秒

在具有 3,000 个模块的大型应用程序中,Turbopack 比 Wepback 快 700 倍。

在具有 3,000 个模块的大型应用程序中,Turbopack 比 Wepback 快 700 倍。

要了解更多信息,请阅读有关 Turbopack 如何捆绑的文档并查看基准。

为什么 Turbopack 这么快?

Turbopack 的架构吸取了Turborepo和 Google 的 Bazel 等工具的经验教训,它们都专注于使用缓存来避免重复执行相同的工作

Turbopack 建立在 Turbo 之上:一个开源的、增量的 Rust 记忆框架。Turbo 可以缓存程序中任何函数的结果。当程序再次运行时,函数不会重新运行,除非它们的输入发生变化。这种细粒度的体系结构使您的程序能够在函数级别跳过大量工作。

一个具有 Rust 速度的增量响应式系统?Turbopack 势不可挡。

要了解更多信息,请查看我们关于 Turbo 的详细介绍

Turbopack 的未来

首先,Turbopack 将用于Next.js 13开发服务器。它将为闪电般快速的 HMR 提供动力,并将原生支持 React 服务器组件,以及 TypeScript、JSX、CSS 等。

Turbopack 最终还将为本地和云中的 Next.js 生产构建提供支持。我们将能够使用Vercel 远程缓存在您的整个团队中共享 Turbo 的缓存。

Webpack 用户还可以期待使用 Turbopack 进入基于 Rust 的未来的增量迁移路径。

我们对 Turbo 生态系统的未来感到无比兴奋,因为我们努力帮助您更快地迭代并在灵感的那一刻进行创作。

Turbopack 为任何规模的应用程序提供快速灵活的开发体验。

Turbopack 为任何规模的应用程序提供快速灵活的开发体验。

立即探索 Next.js 13 中的Turbopack alpha