Turborepo 2.1
Turborepo 2.1 改进了与您的代码仓库的集成,具有以下功能:
- 受影响的包图检测:仅对使用
--affected
命令更改的包运行任务 - 代码仓库探索工具:使用
turbo ls
和turbo run
更快地查找包和任务 - 终端 UI 改进:日志选择、任务搜索、调整大小等
- 扩展的配置选项:使用
turbo.json
实现更灵活的默认设置
立即运行 npx @turbo/codemod migrate
进行更新,或使用 npx create-turbo@latest
开始使用。
使用 --affected
对更改的包运行任务
Turborepo 的 远程缓存 在您的所有机器之间共享单个缓存,因此您永远不必重复相同的工作。但是,如果您可以完全忽略未更改的包呢?
您现在可以将 --affected
标志与 turbo run
一起使用,以自动定位当前分支的最新提交与代码仓库默认分支(通常为 main
或 master
)之间发生更改的包。 turbo
将使用您的 包图 来确保为直接更改或内部依赖项更改的包运行任务。
您可能需要在以下情况下使用此标志:
- 您正在 monorepo 中的多个包上运行许多任务,并且只想在代码发生更改的包中运行这些任务。
- 您没有使用远程缓存,但仍然希望在 CI 中尽可能少地工作。
- 您正在使用远程缓存,并且您在一个大型代码仓库中。通过最大限度地减少将从缓存恢复的任务量,将减少网络传输的数据,从而加快缓存恢复速度。
- 您已经在使用 高级过滤技术 或
turbo-ignore
来创建与--affected
相同或相似的行为。您很可能有机会使用这个新标志来简化您的脚本。
要了解更多信息,请访问文档。
代码仓库探索工具
随着代码仓库的增长和变化,快速找到您要查找的内容可能会很困难。我们希望快速展示您的任务、包及其关系,以使您更快、更轻松地理解您的代码仓库。
turbo run
使用 turbo run
(不带任务参数)来获取代码仓库中可用任务的列表。此命令也适用于 过滤器 和 自动包作用域。
访问文档以了解更多信息。
turbo ls
使用 turbo ls
获取代码仓库中所有包及其位置的列表,或过滤到特定包以查看其内部依赖项和任务的摘要。 turbo ls
还支持 --filter
和 --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 版本中发布了改进
- 突出显示日志以便复制到剪贴板 (PR)
- 在任务列表中搜索 (PR)
- 终端大小更改时更简洁的布局调整 (PR)
- 任务列表中缓存命中的新图标 (PR)
- 当 Watch Mode 触发重启时,任务状态指示器更新 (PR)
- 终端 UI 退出后,输出日志仍然保留 (PR)
构建出色的终端 UI 体验具有独特的挑战,我们正在继续迭代这种体验。感谢您持续的反馈,我们将继续努力为 monorepos 创建出色的 UI。
扩展的配置选项
在此版本中,我们在 turbo.json
中添加了更多键,以便为您代码仓库的默认设置提供更大的灵活性。以下键是此版本中的新增功能:
您可能一直在许多或所有 turbo
调用中使用这些配置的标志等效项,使您的代码库中充斥着如下命令:
现在可以使用 Turborepo 现有配置模型在 turbo.json
中进行集中配置来简化这些操作:
turbo.json
设置代码仓库的默认值。- 系统环境变量 自定义特定环境中的行为。
- 标志自定义
turbo
特定调用中的行为。
要了解有关可用选项和配置的更多信息,请访问文档。
其他改进
- 我们要特别感谢 Shaharking 在 #9023 中的贡献,使流式 UI 中任务名称的颜色具有确定性,关闭了 #2564。这使得跨
turbo run
调用比较任务变得更容易。
在 vercel/turborepo
查看完整的更新日志。
社区
自从发布 Turborepo 2.0 以来,我们看到了令人难以置信的采用率和社区增长:
- 25.9k+ GitHub 星星
- 每周 2.9M+ 次 NPM 下载
- 通过 Vercel 上的远程缓存 节省了 428 年的计算时间
Turborepo 是其所有贡献者(包括我们的核心团队)共同努力的成果。
感谢您持续的支持、反馈和协作,使 Turborepo 成为您的首选构建工具。