mise 是一款快速、灵活的多语言运行时与任务管理器,主要面向需要管理多种工具版本、环境变量和自动化任务的开发场景。其核心目标是帮助用户构建可复现、快速的开发环境并简化工作流。
用途方面,mise 可用于工具版本管理、环境配置、任务自动化以及跨项目一致性维护。它支持通过多种后端安装工具,包括 npm 包、cargo 二进制、asdf 插件、系统包、go、git、pipx 等。
主要能力包括:
- 工具管理:安装工具(如 mise install node@20、mise install cargo:ripgrep)、固定版本(mise use node@20 -g 全局,mise use python@3.11 项目级)、查询版本(mise ls、mise ls-remote node)、查看工具信息(mise tool node、mise latest node、mise where node)、多后端安装、安装路径查询(mise where node、mise which node)、从其他版本管理器同步(mise sync,如 nvm、rbenv、pyenv)。
- 环境控制:设置变量(mise set NODE_ENV=production)、shell 激活(mise activate、mise deactivate)、执行上下文(mise x -- npm install、mise x node@20 -- node app.js)、导出环境(mise env)、启动新 shell(mise en)、基于配置的环境变量(从 mise.<ENV>.toml 加载)、作用域执行(-E ENV 标志)。
- 任务自动化:在 mise.toml 的 [tasks] 中定义任务,执行任务(mise run build、mise r build)、监听重跑(mise watch build)、列出任务(mise tasks / mise t)、任务依赖图与执行顺序、并行执行(-j/--jobs,默认 8)、直接运行任务(mise build)。
- 配置与持久化:配置文件包括 mise.toml(项目)、~/.config/mise/settings.toml(用户)、mise.<ENV>.toml(环境特定);配置管理(mise config)、格式化(mise fmt)、工具固定([tools] 段)、任务定义([tasks] 段,含 commands、depends、env)、设置查看(mise settings)、全局默认(-g/--global)、信任模型(mise trust)。
- 维护与诊断:健康检查(mise doctor)、查看过时工具(mise outdated)、升级工具(mise upgrade / mise up、mise up node@20、mise up --interactive)、缓存管理(mise cache)、更新 shim(mise reshim)、清理未使用版本(mise prune)、更新锁文件校验和(mise lock)。
- 插件与注册表:浏览注册表(mise registry)、搜索工具(mise search node)、插件管理(mise plugins)、后端管理(mise backends)、测试工具安装(mise test-tool node@20)。
使用方式上,用户可通过命令行执行各类操作,并在 mise.toml 中声明工具版本、环境变量和任务。典型流程包括:使用 mise use 固定工具版本,通过 eval "$(mise activate bash)" 在 shell 中激活,使用 mise x -- 运行命令,使用 mise run 或 mise watch 执行任务。mise.toml 结构包含 [tools]、[env]、[tasks] 以及环境特定覆盖(如 [env.production])。
适用场景包括本地开发环境搭建、基于任务的工作流、跨项目版本一致性、环境特定配置(开发、生产、CI)、CI/CD 环境准备、Docker 构建、编辑器集成等。mise 可与 bash、zsh、fish、nu 等 shell 集成,也可替代 npm scripts、Make 等任务运行器。
限制方面,资料未提供具体的系统要求、性能基准、收费模式或平台支持细节。部分功能(如后台工具同步)描述较为简略,未展开具体实现。