Turborepo 2.1

2024年8月27日,星期二
Tom Knickman
姓名
Tom Knickman
X
@tknickman
Anthony Shew
姓名
Anthony Shew
X
@anthonysheww
Chris Olszewski
姓名
Chris Olszewski
Nicholas Yang
姓名
Nicholas Yang
X
@nicholaslyang
Dimitri Mitropoulos
姓名
Dimitri Mitropoulos

Turborepo 2.1 改进了与您的代码仓库的集成,具有以下功能:

立即运行 npx @turbo/codemod migrate 进行更新,或使用 npx create-turbo@latest 开始使用。

使用 --affected 对更改的包运行任务

Turborepo 的 远程缓存 在您的所有机器之间共享单个缓存,因此您永远不必重复相同的工作。但是,如果您可以完全忽略未更改的包呢?

您现在可以将 --affected 标志与 turbo run 一起使用,以自动定位当前分支的最新提交与代码仓库默认分支(通常为 mainmaster)之间发生更改的包。 turbo 将使用您的 包图 来确保为直接更改或内部依赖项更改的包运行任务。

终端
turbo run lint test --affected

您可能需要在以下情况下使用此标志:

要了解更多信息,请访问文档

代码仓库探索工具

随着代码仓库的增长和变化,快速找到您要查找的内容可能会很困难。我们希望快速展示您的任务、包及其关系,以使您更快、更轻松地理解您的代码仓库。

turbo run

使用 turbo run(不带任务参数)来获取代码仓库中可用任务的列表。此命令也适用于 过滤器自动包作用域

终端
# List all tasks in the repository
turbo run
 
# List tasks in a specific package
turbo run --filter=@repo/ui
 
# Using Automatic Package Scoping
cd packages/ui && turbo run

访问文档以了解更多信息。

turbo ls

使用 turbo ls 获取代码仓库中所有包及其位置的列表,或过滤到特定包以查看其内部依赖项和任务的摘要。 turbo ls 还支持 --filter--affected,使其易于收集更改的包的列表。

终端
# List all packages in the repository
turbo ls
 
# List dependencies and tasks for the `web` package
turbo ls web
 
## List affected packages
turbo ls --affected

turbo ls 支持一个实验性的 --output 标志,该标志可用于以特定格式返回结果。例如,--output=json 可用于更轻松地为其他工具或自定义脚本创建输入。如果您以前使用 turbo build --dry=json 来检索更改的包的列表,请尝试使用 turbo ls --affected --output=json。访问文档以获取更多信息,并在 turbo ls RFC 上留下关于输出格式的反馈。

访问文档以了解更多信息。

终端 UI 改进

在 Turborepo 2.0 中,我们发布了一个新的终端 UI,以提高日志的清晰度,并允许在本地开发中进行交互式任务。我们听取了您的反馈,并优先改进此 UI,在 2.0 的补丁和此 2.1 版本中发布了改进

构建出色的终端 UI 体验具有独特的挑战,我们正在继续迭代这种体验。感谢您持续的反馈,我们将继续努力为 monorepos 创建出色的 UI。

扩展的配置选项

在此版本中,我们在 turbo.json 中添加了更多键,以便为您代码仓库的默认设置提供更大的灵活性。以下键是此版本中的新增功能:

turbo.json
{
  "envMode": "loose",
  "daemon": false,
  "cacheDir": "./my-custom-directory/"
}

您可能一直在许多或所有 turbo 调用中使用这些配置的标志等效项,使您的代码库中充斥着如下命令:

终端
turbo run build --env-mode=loose --no-daemon --cache-dir=./my-custom-directory

现在可以使用 Turborepo 现有配置模型在 turbo.json 中进行集中配置来简化这些操作:

要了解有关可用选项和配置的更多信息,请访问文档

其他改进

vercel/turborepo 查看完整的更新日志。

社区

自从发布 Turborepo 2.0 以来,我们看到了令人难以置信的采用率和社区增长:

Turborepo 是其所有贡献者(包括我们的核心团队)共同努力的成果。

感谢您持续的支持、反馈和协作,使 Turborepo 成为您的首选构建工具。