介绍

欢迎来到 Turborepo 文档!


什么是 Turborepo?

Turborepo 是用于 JavaScript 和 TypeScript 代码库的高性能构建系统。它专为扩展 monorepo 而设计,同时也使单包工作区中的工作流程更快。

从个人开发者到世界上最大的企业工程组织,Turborepo 通过一种轻量级的方法来优化您需要在仓库中运行的任务,从而节省了多年的工程时间和数百万美元的计算成本。

Monorepo 问题

Monorepo 有许多优点 - 但它们难以扩展。每个工作区都有自己的测试套件、自己的代码检查和自己的构建过程。一个单一的 monorepo 可能有数千个任务要执行

A representation of a typical monorepo. The first application took 110 seconds to complete its tasks. The second application took 140 seconds to complete its tasks. The shared package between them took 90 seconds to complete its tasks.

这些减速会极大地影响您的团队构建软件的方式,尤其是在规模化时。反馈循环需要快速,以便开发人员可以快速交付高质量的代码。

Monorepo 解决方案

The monorepo from before using Turborepo, showing how it can hit cache to complete tasks for all three packages in 80 milliseconds.

Turborepo 解决了您的 monorepo 的扩展问题远程缓存存储您所有任务的结果,这意味着您的 CI 永远不需要重复相同的工作

此外,在 monorepo 中,任务调度可能很困难。您可能需要先构建,然后测试,然后进行代码检查...

Turborepo 调度您的任务以实现最快速度,在所有可用核心上并行处理工作。

Turborepo 可以逐步采用,您可以在几分钟内将其添加到任何仓库。它使用您已经编写的 package.json 脚本、您已经声明的依赖项和一个 turbo.json 文件。您可以将其与任何包管理器(如 npmyarnpnpm)一起使用,因为 Turborepo 依赖于 npm 生态系统的约定。

如何使用这些文档

我们将尽力减少术语的使用 - 但有些必知词汇对于您阅读文档非常重要。我们创建了术语表页面,以帮助您了解这些术语。

加入社区

如果您对与 Turborepo 相关的任何内容有疑问,欢迎在 GitHub DiscussionsVercel CommunityTwitter 上向社区提问。