用途:mise 是多语言工具版本管理器与任务运行器,用单个 mise.toml 取代 Makefile、shell 脚本和各语言专用版本管理器(nvm、pyenv、rustup),统一管理工具版本、项目任务与环境变量。
主要能力:
- 配置文件包含 [env]、[tools]、[tasks]、[settings]、[plugins]、[tool_alias]、[task_config]、[vars] 等顶层段,可用 min_version 限定最低 mise 版本。
- 工具版本管理:在 [tools] 中声明 node、python、go、erlang 等,支持精确版本、前缀、channel、ref、sub-1 等格式,可多版本并存,支持 ubi:、cargo:、npm:、pipx: 后端语法及自定义插件。
- 任务定义:支持内联、表形式、多行脚本及 .mise/tasks/ 下可执行文件任务;表任务可配置 description、depends、run、dir、env、sources、outputs,支持按任务固定工具版本、别名与 shell 覆盖,子目录形成命名空间(db/migrate 即 db:migrate)。
- 环境变量与分层配置:支持模板变量 {{config_root}}、{{env.VAR}},从 dotenv 加载,自动创建 Python 虚拟环境;全局 ~/.config/mise/config.toml、项目 ./mise.toml 与 ./mise.local.toml 逐层覆盖。
- 其它:依赖与并行执行、wait_for、hooks(enter、cd、leave、preinstall、postinstall)、watch_files 自动格式化、mise generate 生成 bootstrap/config/git-pre-commit/github-action/task-docs/task-stubs、presets 复用脚手架、hk 的 git hook 集成。
使用方式:安装并激活后,用 mise use 安装并写入版本,用 mise run 运行任务。查版本可用 mise ls、mise ls-remote、mise outdated、mise up --bump。启用 --pin 或 MISE_PIN=1 可写入精确版本。
限制与注意:资料建议工具应固定到具体 semver,而非 latest 或 lts(但 latest 在格式表中有记载);resolve-then-pin 可用 mise use --pin;不要从记忆硬编码版本;local 覆盖文件应 gitignore。具体安装命令、收费与平台信息未提供。