Skip to content

命令行界面参考

Task 支持多种配置方式。这些配置方法按以下顺序依次解析,优先级从低到高:

本文将详细探讨第三种方式:命令行标志。所有 CLI 命令都会覆盖其对应的配置文件和环境变量设置。

格式

Task 命令遵循以下语法:

bash
task [选项] [任务名...] [-- CLI参数...]

TIP

若指定 --,所有剩余参数将被赋值给特殊的 CLI_ARGS 变量。

命令

task [任务名...]

运行 Taskfile 中定义的一个或多个任务。

bash
task build
task test lint
task deploy --force

task --list

列出所有包含描述信息的可用任务。

bash
task --list
task -l

task --list-all

列出所有任务(包含无描述信息的任务)。

bash
task --list-all
task -a

task --init

在当前目录创建新的 Taskfile.yml 文件。

bash
task --init
task -i

选项

常规选项

-h, --help

显示帮助信息。

bash
task --help

--version

显示 Task 版本信息。

bash
task --version

-v, --verbose

启用详细输出模式。

bash
task build --verbose

-s, --silent

禁用命令回显功能。

bash
task deploy --silent

执行控制

-f, --force

即使任务已是最新状态也强制执行。

bash
task build --force

-n, --dry

编译并打印任务但不实际执行。

bash
task deploy --dry

-p, --parallel

并行执行多个任务。

bash
task test lint --parallel

-C, --concurrency <数量>

限制并发任务数(0 表示无限制)。

bash
task test --concurrency 4

-x, --exit-code

透传失败命令的退出代码。

bash
task test --exit-code

文件与目录

-d, --dir <路径>

设置 Task 运行及查找 Taskfile 的目录。

bash
task build --dir ./backend

-t, --taskfile <文件>

指定自定义 Taskfile 路径。

bash
task build --taskfile ./custom/Taskfile.yml

-g, --global

运行位于 $HOME/Taskfile.{yml,yaml} 的全局 Taskfile。

bash
task backup --global

输出控制

-o, --output <模式>

设置输出样式(可选模式:interleaved/交错, group/分组, prefixed/前缀)。

bash
task test --output group

--output-group-begin <模板>

分组输出前打印的消息模板。

bash
task test --output group --output-group-begin "::group::{{.TASK}}"

--output-group-end <模板>

分组输出后打印的消息模板。

bash
task test --output group --output-group-end "::endgroup::"

--output-group-error-only

仅在非零退出码时显示命令输出。

bash
task test --output group --output-group-error-only

-c, --color

控制彩色输出(默认启用)。

bash
task build --color=false
# 或使用环境变量
NO_COLOR=1 task build

任务信息

--status

检查任务是否为最新状态(不实际运行)。

bash
task build --status

--summary

显示任务的详细信息。

bash
task build --summary

--json

以 JSON 格式输出任务信息(需与 --list--list-all 联用)。

bash
task --list --json

--sort <模式>

更改任务列表排序方式(可选模式:default/默认, alphanumeric/字母数字, none/无排序)。

bash
task --list --sort alphanumeric

监听模式

-w, --watch

监听文件变动并自动重新运行任务。

bash
task build --watch

-I, --interval <时长>

设置监听间隔(默认:5s)。必须为有效的 Go 时长格式

bash
task build --watch --interval 1s

交互选项

-y, --yes

自动对所有提示回答 "yes"。

bash
task deploy --yes

退出代码

Task 使用特定退出代码指示不同类型的错误:

成功状态

  • 0 - 成功

常规错误 (1-99)

  • 1 - 发生未知错误

Taskfile 错误 (100-199)

  • 100 - 未找到 Taskfile
  • 101 - Taskfile 已存在(使用 --init 时)
  • 102 - Taskfile 无效或无法解析
  • 103 - 远程 Taskfile 下载失败
  • 104 - 远程 Taskfile 未受信任
  • 105 - 远程 Taskfile 获取操作不安全
  • 106 - 离线模式下无远程 Taskfile 缓存
  • 107 - Taskfile 中未定义架构版本

任务错误 (200-255)

  • 200 - 未找到任务
  • 201 - 命令执行错误
  • 202 - 尝试运行内部任务
  • 203 - 存在多个同名/别名的任务
  • 204 - 任务调用次数过多(达到递归限制)
  • 205 - 任务被用户取消
  • 206 - 缺少必需变量
  • 207 - 变量值不正确

INFO

使用 -x/--exit-code 时,将透传失败命令的退出代码而非上述代码。

TIP

完整退出代码列表可在代码库 errors/errors.go 中查看。

JSON 输出格式

--json--list--list-all 联用时:

json
{
  "tasks": [
    {
      "name": "build",
      "task": "build",
      "desc": "构建应用程序",
      "summary": "编译源代码并生成二进制文件",
      "up_to_date": false,
      "location": {
        "line": 12,
        "column": 3,
        "taskfile": "/path/to/Taskfile.yml"
      }
    }
  ],
  "location": "/path/to/Taskfile.yml"
}