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 体验面临独特的挑战,我们将继续迭代此体验。感谢您在创建出色的单体仓库 UI 方面持续提供反馈。

扩展配置选项

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

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

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

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

现在可以通过 turbo.json 中的集中配置,使用 Turborepo 现有的配置模型进行简化:

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

其他改进

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

社区

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

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

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