Turborepo 2.5
Turborepo 2.5 包含多项改进,旨在增强您的代码仓库
- Sidecar 任务:使用
with
确保持久任务始终一起运行 --continue
行为的改进控制:仅在依赖项成功时继续运行任务turbo.jsonc
:直接在您的配置文件中编写注释- Bun 的
prune
:您现在可以在 Bun 代码仓库中使用turbo prune
$TURBO_ROOT$
:在turbo.json
中引用工作区根目录- OpenAPI 查看器:用于自托管远程缓存的人类可读 OpenAPI 规范
立即运行 npx @turbo/codemod migrate
进行升级,或使用 npx create-turbo@latest
开始使用。
Sidecar 任务
在某些情况下,您希望确保两个长时间运行的任务始终同时运行。例如,您可能有一个 Web 应用程序,它向您的 Monorepo 中的另一个应用程序发出请求。单独运行 Web 应用程序可能没有用,因为后端 API 应用程序将不可用以服务其请求。
您可能尝试使用 dependsOn
来创建这种关系 - 但很快发现不允许依赖长时间运行的任务。长时间运行的任务永远不会退出,因此依赖任务永远不会运行。这意味着您必须仔细编写 --filter
以确保这些资源可用——并确保代码仓库中的每个人都知道使用它。
相反,我们引入了 with
键,以便您可以保证依赖的长时间运行任务始终与它在运行时依赖的长时间运行任务一起运行。


使用此软件包配置,每当 web
应用程序的 dev
任务启动时,api
的 start
任务也将使用 package#task
微语法运行。
访问文档以了解更多信息。
--continue
行为的改进控制
默认情况下,当 Turborepo 遇到失败的任务时,它会停止运行任务。您可以使用 --continue
标志更改此行为,指示 Turborepo 继续运行任务,即使一个或多个任务已失败。
虽然 --continue
标志很有用,但在某些情况下,运行依赖项已失败的任务只会导致更多失败。对于这些情况,在此版本中,我们为 --continue
标志添加了一个新值:--continue=dependencies-successful
。
当使用此值时,任务的所有依赖项必须成功,依赖任务才能运行。
Turborepo 核心团队要感谢 @jenseng 贡献此功能。
向您的 Turborepo 配置文件添加注释
您现在可以使用 JSONC (turbo.jsonc
) 作为您的配置文件,允许您向您的配置添加有用的注释。
Bun 代码仓库的精简 Monorepo
turbo prune
为目标软件包创建一个部分 Monorepo,对于从 Monorepo 创建轻量级 Docker 镜像尤其有用。此命令在以前版本的 Turborepo 中已可用于 pnpm、npm 和 Yarn 代码仓库。
在此版本中,turbo prune
现在可用于 Bun v1.2+,它引入了一个基于文本的 lockfile,我们现在可以读取和分析它。
要了解更多关于 turbo prune
的信息,请访问文档。
Turborepo 核心团队要感谢 @camero2734 贡献此功能。
使用 $TURBO_ROOT$
微语法引用您的工作区根目录
在某些情况下,您被迫突破 Monorepo 中的软件包边界。这可能是由于许多约束造成的,例如不符合现代软件包管理器工作区或使您脱离理想条件的增量迁移工作流程的工具。
过去,您需要在 turbo.json
中编写遍历到工作区根目录的路径,因为 glob 是锚定到软件包根目录的


虽然这种模式确实有效,但在某些情况下可能会导致不一致
- 某些软件包可能需要
../
,而其他软件包可能需要../../
- 开发人员可能会将软件包移动到不同的位置,从而导致路径不正确
相反,您现在可以使用 $TURBO_ROOT$
微语法


现在,此文件 glob 保证始终从您的工作区根目录开始。
访问文档以了解更多信息。
用于自托管的 OpenAPI 规范查看器
Turborepo 很荣幸成为开源项目,并为其远程缓存协议提供了公共规范。虽然 Vercel 远程缓存是一个免费使用的托管选项,但 OpenAPI 规范允许社区创建自己的远程缓存实现。
我们已将 远程缓存规范以 JSON 格式发布到 Web 有一段时间了,最近在 https://turbo.net.cn/docs/openapi 添加了该规范的人类友好版本。
访问远程缓存文档以了解更多信息。
其他变更
致谢和社区
Turborepo 是所有贡献者(包括我们的核心团队:Anthony、Chris、Dimitri、Nicholas 和 Tom)共同努力的成果。
感谢您持续的支持、反馈和协作,使 Turborepo 成为您的首选构建工具。要了解如何参与,请访问社区页面。
我们还要感谢为 Turborepo 的此版本做出贡献的所有人:@beaussan、@bohongu、@camero2734、@cprussin、@dinglindong、@jenseng、@jimmycathy、@kevincatty、@mm-webx、@ognevny、@pi0、@pudongair、@rootdiae、@shinjith-dev、@sicarius97、@ssshashank、@Tigatok、@todaymoon、@Tyoneb、@victorlagerfors、@vinayaksodar、@wmjae、@x-N0 和 @xiaobei0715。