run
运行 turbo.json 中指定的任务。
- [任务]:Turborepo 可以同时运行一个或多个任务。要通过
turbo运行任务,必须在turbo.json中指定该任务。 - [选项]:选项用于控制
turbo run命令的行为。下面描述了可用的标志选项。 - [-- [传递给任务的参数]]:您也可以将参数传递给底层脚本。请注意,所有参数都将传递给运行命令中命名的所有任务。
须知:
turbo run 是 turbo 的别名。turbo run build lint check-types 与 turbo build lint check-types 相同。我们建议在 CI 管道中使用 turbo run,并在本地使用全局 turbo 以方便使用。
如果没有提供任务,turbo 将显示存储库中可用的任务。
选项
--affected
仅筛选受当前分支更改影响的软件包。
默认情况下,该标志等同于 --filter=...[main...HEAD]。这会从 Git 的角度考虑 main 和 HEAD 之间的更改。
比较要求 base 和 head 之间的所有内容都存在于检出中。如果检出太浅,则所有软件包都将被视为已更改。
例如,将 Git 设置为使用 --filter=blob:none --depth=0 检出将确保 --affected 具有正确的历史记录以正常工作。
您可以使用各自的系统环境变量覆盖默认的 base 和 head。
--cache <options>
默认值:local:rw,remote:rw
指定运行的缓存源。接受逗号分隔的选项列表。
local:使用本地文件系统缓存。remote:使用远程缓存。
如果省略缓存源,则禁用读写。
缓存源使用以下值:
rw:读写r:只读w:只写- 无(
local:):不使用缓存。等同于省略缓存源选项。
--cache-dir <path>
默认值:.turbo/cache
指定文件系统缓存目录。
更改目录时,请确保该目录在您的 .gitignore 中。
相同的行为也可以通过 TURBO_CACHE_DIR=example/path 系统变量设置。
--concurrency <number | percentage>
默认值:10
设置/限制任务执行的最大并发数。必须是大于或等于 1 的整数,或百分比值,如 50%。
- 使用
1强制串行执行(一次一个任务)。 - 使用
100%以使用所有可用的逻辑处理器。 - 如果同时传递了
--parallel标志,则此选项将被忽略。
--continue[=<option>]
默认值:never
指定在发生错误(例如,任务的非零退出代码)时 turbo 应如何处理当前和待处理任务。
- 当
--continue=never且发生错误时,turbo将取消所有任务。 - 当
--continue=dependencies-successful且发生错误时,turbo将取消依赖任务。依赖项已成功的任务将继续运行。 - 当
--continue=always且发生错误时,turbo将继续运行所有任务,即使是依赖项已失败的任务。 - 当未指定值时指定
--continue,它将默认为always。
在所有情况下,turbo 将以执行期间遇到的最高退出代码值退出。
--cwd <path>
默认值:根 turbo.json 的目录
设置命令的工作目录。
--dangerously-disable-package-manager-check
Turborepo 使用您存储库的锁文件来确定缓存行为、包图等。因此,我们使用packageManager 字段来帮助您稳定 Turborepo。
为了帮助增量迁移或在无法使用 packageManager 字段的情况下,您可以使用 --dangerously-disable-package-manager-check 选项跳过此检查,并承担不稳定锁文件导致不可预测行为的风险。禁用后,Turborepo 将尽力发现存储库所需的包管理器。
您还可以通过turbo.json 中的配置或TURBO_DANGEROUSLY_DISABLE_PACKAGE_MANAGER_CHECK 环境变量跳过此检查,以实现更广泛的覆盖。
--dry / --dry-run
不执行任务,而是显示将要运行的软件包和任务的详细信息。
指定 --dry=json 以获取 JSON 格式的输出。
任务详细信息包括有用信息(列表不详尽)
| 字段 | 描述 |
|---|---|
taskId | 任务的 ID,格式为 package-name#task-name |
task | 要执行的任务名称 |
package | 运行任务的软件包 |
hash | 任务的哈希值(用于缓存) |
hashOfExternalDependencies | 全局哈希 |
command | 用于运行任务的命令 |
inputs | 用于哈希的文件输入列表 |
outputs | 已缓存的文件输出列表 |
dependencies | 必须在此任务之前运行的任务 |
dependents | 必须在此任务之后运行的任务 |
environmentVariables | env 和 passThroughEnv 中指定的环境变量列表 |
--env-mode <option>
类型:字符串
控制任务运行时可用的环境变量。
须知:
PATH、SHELL 和 SYSTEMROOT 始终可用于任务。
相同的行为也可以通过 TURBO_ENV_MODE=strict 系统变量设置。
strict
只有以下键中指定的环境变量可用于任务:
如果指定或推断出 Strict Mode,所有任务都将在 strict 模式下运行,无论其配置如何。
loose
机器上的所有环境变量都可用于任务的运行时。
当环境变量未在上文 strict 中列出的键中进行缓存时,这可能很危险。在 loose 模式下,您更有可能从缓存中恢复具有错误环境变量的软件包版本。
--filter <string>
指定要从存储库图中执行的目标。可以组合多个过滤器以选择不同的目标集。
过滤器可以组合起来创建包、目录和 Git 提交的组合。
| 目标类型 | 描述 | 示例 |
|---|---|---|
| 包 | 通过其在 package.json 中的名称选择一个包。 | turbo run build --filter=ui |
| 目录 | 指定目录以捕获要运行任务的包列表。与其他过滤器一起使用时,必须用 {} 括起来。 | turbo run build --filter=./apps/* |
| Git 提交 | 使用 Git 规范器,指定具有源代码管理更改的包。必须用 [] 括起来。 | turbo run build --filter=[HEAD^1] |
须知:
-F 是 --filter 的别名。过滤的微语法
!:从选择中否定目标。...使用包:选择包图中相对于目标的所有包。在包名称之前使用...将选择目标的依赖项,而在包名称之后使用...将选择目标的被依赖项。...使用 Git 提交:使用[<from commit>]...[<to commit>]选择范围。^:使用...时从选择中省略目标。
有关过滤的深入讨论和实际用例,请访问运行任务页面。
使用任务标识符
您还可以以 package-name#task-name 的格式为特定包运行特定任务。
须知:
这也会运行任务的依赖项。要在不运行依赖项的情况下运行任务,请使用--only 标志。
高级过滤示例
您可以组合多个过滤器以进一步优化目标。多个过滤器以并集的形式组合,而否定过滤器从并集结果中移除包。
--force
忽略现有缓存的工件并重新执行所有任务。
须知:
--force 将覆盖现有任务缓存。
相同的行为也可以通过TURBO_FORCE 环境变量设置。
--framework-inference
默认值:true
指定是否对任务进行框架推断。
当为 false 时,自动环境变量包含将被禁用。
--global-deps <file glob>
指定要进行哈希的全局文件系统依赖项的 glob。对于 .env 和影响多个包的根目录中的文件很有用。
我们建议在 turbo.json 的globalDependencies 键中指定要包含在哈希中的文件 glob,以确保它们始终被考虑在内。
--graph <file name>
默认值:dot
此命令可以输出图形文件:svg、png、jpg、pdf、json、html、mermaid 或 dot。
如果未安装 Graphviz,或者未提供文件名,此命令会将点图打印到 stdout。
已知错误:目前,所有可能的任务节点都将添加到图中,即使该脚本实际上不存在于给定包中。这不会影响执行,但图可能会夸大所涉及的包和任务的数量。
--log-order <option>
默认值:auto
设置日志输出的排序。
默认情况下,turbo 在 CI 环境中使用 grouped 日志,在其他地方使用 stream 日志。此标志在使用终端 UI 时不适用。
| 选项 | 描述 |
|---|---|
stream | 一旦可用,立即显示输出 |
grouped | 按任务分组输出 |
auto | turbo 根据其自身启发式决定 |
--log-prefix <option>
默认值:auto
控制运行任务时生成的日志行的 <package>:<task>: 前缀。
| 选项 | 描述 |
|---|---|
task | 强制在日志中添加 <package>:<task>: 前缀。 |
none | 无前缀 |
auto | turbo 根据其自身启发式决定 |
--no-cache
已弃用
此标志已弃用,将在未来的主要版本中移除。请改用--cache 标志。
默认 false
不缓存任务结果。
--daemon 和 --no-daemon
turbo 可以运行一个后台进程来预先计算用于确定需要完成的工作的值。此独立进程(守护程序)是一种优化,并非 turbo 正常运行所必需。
默认守护程序用法是使用 turbo.json 中的daemon 字段为您的存储库设置的。传递 --daemon 要求 turbo 使用独立进程,而 --no-daemon 指示 turbo 避免使用或创建独立进程。
相同的行为也可以通过 TURBO_DAEMON=true 系统变量设置。
--output-logs <option>
默认值:full
设置输出日志的类型,如果 turbo.json 中定义了outputLogs,则覆盖它。
| 选项 | 描述 |
|---|---|
full | 显示所有日志 |
hash-only | 仅显示任务的哈希值 |
new-only | 仅显示缓存未命中时的日志 |
errors-only | 仅显示任务失败的日志 |
none | 隐藏所有任务日志 |
--only
默认值:false
将执行限制为仅包含指定任务。
示例
给定此 turbo.json


该命令将只执行每个包中的 test 任务。它不会运行 build。
此外,--only 将只运行指定包中的任务,不包括依赖项。例如,turbo run build --filter=web --only 将只运行 web 包中的 build 脚本。
--parallel
默认值:false
跨包并行运行命令,忽略任务依赖图。
--parallel 标志通常用于不退出的长时间运行的“开发”或“监视”任务。从 turbo@1.7 开始,我们建议使用persistent 配置这些任务。
--preflight
仅在配置了远程缓存时适用。启用在每次缓存工件和分析请求之前发送预检请求。后续的上传和下载将遵循重定向。
相同的行为也可以通过 TURBO_PREFLIGHT=true 系统变量设置。
--profile
生成 Chrome Tracing 格式的运行跟踪,您可以使用它来分析性能。
您必须使用 --profile 提供详细程度标志(-v、-vv 或 -vvv)才能生成跟踪。
配置文件可以在 Perfetto 等工具中查看。
--remote-cache-timeout
默认值:30
设置远程缓存操作的超时时间(秒)。
--remote-only
已弃用
此标志已弃用,将在未来的主要版本中移除。请改用--cache 标志。
默认值:false
忽略所有任务的本地文件系统缓存,使用远程缓存进行读写和缓存任务输出。
--summarize
在 .turbo/runs 中生成一个 JSON 文件,其中包含有关运行的元数据,包括:
- 受影响的包
- 已执行的任务(包括其时间安排和哈希)
- 缓存工件中包含的所有文件
此标志有助于调试,以确定诸如以下事项:
turbo如何解释您的inputs和outputs的 glob 语法- 两次任务运行之间哪些输入发生了变化导致缓存未命中
- 任务时间如何随时间变化
摘要查看器
虽然没有 Turborepo 原生运行摘要 UI 查看器,但有几个社区构建的工具可用
- https://turbo.nullvoxpopuli.com - 基于 Web 的运行摘要 UI 查看器
turborepo-summary- 从 Turborepo 运行摘要 JSON 输出生成人类可读的报告turborepo-summary-action- GitHub Action 包装turborepo-summary以将其附加到 GitHub Actions 作业摘要
--token
用于远程缓存的持有者令牌。与 --team 标志结合使用时,在非交互式 shell 中运行非常有用。
此值也可以使用TURBO_TOKEN 系统变量设置。如果两者都存在,则标志值将覆盖系统变量。
须知:
如果您正在使用Vercel 远程缓存并在 Vercel 上构建您的项目,则无需使用此标志。此值将自动为您设置。
--team
远程缓存团队的 slug。与 --token 标志结合使用时,在非交互式 shell 中运行非常有用。
此值也可以使用TURBO_TEAM 系统变量设置。如果两者都存在,则标志值将覆盖系统变量。
--ui
指定用于输出的 UI。接受 stream 或 tui。
--verbosity
要指定日志级别,请使用 --verbosity=<num> 或 -v, -vv, -vvv。
| 级别 | 标志值 | 简写 |
|---|---|---|
| 信息 | --verbosity=1 | -v |
| 调试 | --verbosity=2 | -vv |
| 跟踪 | --verbosity=3 | -vvv |