mise tasks run
- 用法:
mise tasks run [FLAGS] - 别名:
r - 源代码:
src/cli/run.rs
运行任务
此命令将运行一个任务,或并行运行多个任务。 任务可能依赖于其他任务或源文件。 如果任务配置了 source,则只有在源文件发生变化时才会运行。
任务可以在 mise.toml 中定义,也可以作为独立脚本定义。 在 mise.toml 中,任务采用以下形式:
[tasks.build]
run = "npm run build"
sources = ["src/**/*.ts"]
outputs = ["dist/**/*.js"]或者,任务可以定义为独立脚本。 这些脚本必须位于 mise-tasks、.mise-tasks、.mise/tasks、mise/tasks 或 .config/mise/tasks 中。 脚本的名称将作为任务的名称。
$ cat .mise/tasks/build<<EOF
#!/usr/bin/env bash
npm run build
EOF
$ mise run build标志
--affected— 仅为受 Git 更改影响的项目运行匹配的任务--affected-base <REV>—--affected的 Git 基准修订版本 默认为 MISE_AFFECTED_BASE、CI 元数据或 HEAD~1--affected-explain— 解释为何通过--affected选择这些项目和任务--affected-head <REV>—--affected的 Git 头部修订版本 默认为 MISE_AFFECTED_HEAD、CI 元数据或 HEAD--affected-json— 以 JSON 格式输出受影响的项目和任务,但不运行任务--all— 打开交互式选择器,其中包含整个 monorepo 中的所有任务-c --continue-on-error— 即使某个任务失败,也继续运行其他任务-C --cd <CD>— 执行命令前切换到此目录-f --force— 即使输出已是最新,也强制运行任务-j --jobs <JOBS>— 并行运行的任务数量 小于 1 的值将按 1 处理 [默认值:4] 通过jobs配置或MISE_JOBS环境变量进行配置环境变量:
MISE_JOBS-n --dry-run— 不实际运行任务,只按执行顺序打印任务-o --output <OUTPUT>— 更改运行任务时任务信息的输出方式prefix- 按行打印 stdout/stderr,并在前面加上任务标签interleave- 直接输出到 stdout/stderr,而不是按行输出replacing- 每次替换 stdout,stderr 按原样输出timed- 仅当 stdout 行显示超过 1 秒时才显示这些行keep-order- 按行打印 stdout/stderr,并在前面加上任务标签,但保持输出顺序quiet- 不显示额外输出silent- 不显示任何输出,包括任务的 stdout 和 stderr,但错误除外
环境变量:
MISE_TASK_OUTPUT-q --quiet— 不显示额外输出环境变量:
MISE_QUIET-r --raw— 直接从 stdin 读取以及写入 stdout/stderr,而不是按行处理 使用此选项时不会应用脱敏 通过raw配置或MISE_RAW环境变量进行配置-s --shell <SHELL>— 用于运行 toml 任务的 Shell在 Unix 上默认为
sh -c -o errexit -o pipefail,在 Windows 上默认为cmd /c也可以通过设置MISE_UNIX_DEFAULT_INLINE_SHELL_ARGS或MISE_WINDOWS_DEFAULT_INLINE_SHELL_ARGS进行设置 或者可以通过任务上的shell属性覆盖-S --silent— 除错误外不显示任何输出环境变量:
MISE_SILENT-t --tool <TOOL@VERSION>— 除 mise.toml 文件中已有的工具外,再运行指定的工具,例如:node@20 [email protected]--allow-env <VAR>— 允许指定的环境变量通过(意味着对其他所有环境变量使用 --deny-env) 支持通配符,例如 --allow-env='MYAPP_*'--allow-net <HOST>— 允许访问指定主机的网络(意味着对其他所有网络使用 --deny-net)--allow-read <PATH>— 允许读取指定路径(意味着对其他所有路径使用 --deny-read)--allow-write <PATH>— 允许写入指定路径(意味着对其他所有路径使用 --deny-write)--deny-all— 阻止读取、写入、网络访问和环境变量--deny-env— 阻止继承环境变量(仅传递 PATH、HOME、USER、SHELL、TERM、LANG)--deny-net— 阻止所有网络访问--deny-read— 阻止读取文件系统(系统库和工具目录仍可访问)--deny-write— 阻止所有文件系统写入--fresh-env— 绕过环境缓存并重新计算环境--no-cache— 不在远程任务上使用缓存环境变量:
MISE_TASK_REMOTE_NO_CACHE--no-deps— 跳过自动依赖准备--no-timings— 每个任务完成后隐藏耗时默认始终隐藏,使用
MISE_TASK_TIMINGS=0--skip-deps— 仅运行指定的任务,跳过所有依赖环境变量:
MISE_TASK_SKIP_DEPENDS--skip-tools— 运行任务前跳过工具安装也可以通过
task.run_auto_install设置或MISE_TASK_RUN_AUTO_INSTALL=false环境变量进行持久化设置--task-cache <TASK_CACHE>— 设置本次运行的任务输出缓存访问方式read-write- 读取缓存结果并写入新结果read-only- 读取缓存结果,但不写入新结果write-only- 写入新结果,但不读取缓存结果off- 禁用任务输出缓存local-only- 仅读取和写入本地缓存;目前等同于read-write
可选值:
read-write、read-only、write-only、off、local-only默认值:
read-write环境变量:
MISE_TASK_CACHE--task-cache-explain— 解释生成每个任务输出缓存键的输入--task-cache-explain-json— 以 JSON Lines 格式输出缓存键输入详情,但不运行任务--task-cache-stats— 报告任务输出缓存命中次数、恢复的字节数和节省的时间--timeout <TIMEOUT>— 任务完成的超时时间 例如:30s、5m
示例:
# 运行 "lint" 任务。这需要在 mise.toml 中定义,
# 或作为独立脚本存在。更多信息请参见项目 README。
$ mise run lint
# 强制运行 "build" 任务,即使其源已是最新。
$ mise run --force build
# 运行 "test",其 stdin/stdout/stderr 都连接到当前终端。
# 这会强制使用 `--jobs=1`,以防止输出交错。
$ mise run --raw test
# 并行运行 "lint"、"test" 和 "check" 任务。
$ mise run lint ::: test ::: check
# 执行多个任务,每个任务都有自己的参数。
$ mise run cmd1 arg1 arg2 ::: cmd2 arg1 arg2