Turborepo

简介

欢迎来到 Turborepo 文档!


什么是 Turborepo?

Turborepo 是一个用于 JavaScript 和 TypeScript 代码库的高性能构建系统。它专为扩展单体仓库而设计,并且还能加快单包工作区中的工作流程。

从个人开发者到世界上最大的企业工程组织,Turborepo 通过轻量级的方式优化存储库中需要运行的任务,节省了多年的工程时间,以及数百万美元的计算成本。

单体仓库问题

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

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.

这些减速会严重影响团队构建软件的方式,尤其是在大规模情况下。反馈循环需要快速,这样开发人员才能快速交付高质量的代码。

单体仓库解决方案

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

Turborepo 解决了单体仓库的扩展问题远程缓存存储了所有任务的结果,这意味着您的 CI 永远不需要做两次相同的工作

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

Turborepo 为最大速度安排您的任务,在所有可用的核心上并行处理工作。

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

如何使用这些文档

我们将尽最大努力减少术语的使用,但是有一些必须知道的词语,在您阅读文档时理解它们非常重要。我们创建了词汇表页面,以便在您学习这些术语时提供帮助。

加入社区

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

小时

节省的总计算量
开始使用
远程缓存 →

本页内容