如果你经常在不同项目之间切换,可能遇到过这些情况:项目 A 要求 Node.js 22,项目 B 仍使用 Node.js 20;某个 Python 项目依赖 3.12,而系统里默认是另一个版本;团队成员还需要分别记住启动、测试和构建命令。

mise 正是为这类问题而生。它的名字来自法语 mise en place,意思是“把一切准备就位”。它可以在一个项目配置中统一管理开发工具版本、环境变量和常用任务。

mise 管理的是开发工具与项目环境,不是 Homebrew、apt 或 pacman 的替代品。系统库、桌面应用和操作系统级依赖仍应交给系统包管理器。

mise 能做什么

mise 的核心能力可以分成三部分:

  1. 开发工具版本管理:管理 Node.js、Python、Go、Ruby、Terraform 等众多工具,并根据当前目录自动切换版本。
  2. 项目环境变量管理:在进入项目时加载 mise.toml.env 或其他来源中的环境变量。
  3. 任务运行器:把开发、测试、构建等命令写入项目配置,通过统一命令执行。

过去可能需要同时使用 nvm、pyenv、asdf、direnv 和 Makefile;mise 尝试用一个工具覆盖这些日常场景。

安装 mise

macOS 用户可以使用 Homebrew:

brew install mise

macOS 或 Linux 也可以使用官方安装脚本:

curl https://mise.run | sh

安装完成后先确认版本:

mise --version

为了让 mise 在切换目录时自动调整工具版本,需要将它接入 Shell。Zsh 用户在 ~/.zshrc 中加入:

eval "$(mise activate zsh)"

Bash 用户则在对应的 Shell 配置文件中加入:

eval "$(mise activate bash)"

修改后重新打开终端,或者重新加载配置文件。

给项目指定工具版本

进入项目目录后,可以用 mise use 安装工具并把版本写入项目配置:

cd my-project
mise use node@24 python@3.13

命令会在当前项目创建或更新 mise.toml。对应配置大致如下:

[tools]
node = "24"
python = "3.13"

此后进入该目录,mise 会自动选择这里声明的版本。可以用下面的命令查看当前生效的工具:

mise ls --current

mise usemise install 很容易混淆:

  • mise use node@24 会安装工具,并把版本写入配置,使其在项目中生效。
  • mise install 会读取已有配置并安装缺失工具,但不会替你向配置文件新增版本声明。

因此,刚克隆一个包含 mise.toml 的项目时,通常只需要执行:

mise install

在一个文件中管理环境与任务

下面是一个更完整的 mise.toml

[tools]
node = "24"
python = "3.13"

[env]
NODE_ENV = "development"
APP_PORT = "3000"

[tasks.dev]
description = "启动本地开发服务器"
run = "npm run dev"

[tasks.test]
description = "运行测试"
run = "npm test"

定义后,可以使用统一入口运行任务:

mise run dev
mise run test

这种方式的价值在团队协作中尤其明显:工具版本、环境约定和常用命令都可以随代码一起提交。新成员不必先阅读一长串环境搭建说明,只需安装 mise,再执行 mise install

个人专用、包含本地路径或敏感值的配置不应提交到仓库,可以放进 mise.local.toml,并将它加入 .gitignore。密钥也不应直接写进公共的 mise.toml

配置层级与信任

mise 会从当前目录向上查找配置文件,并把更具体的配置覆盖到更通用的配置之上。常见层级包括:

  • ~/.config/mise/config.toml:全局默认配置;
  • 项目根目录的 mise.toml:团队共享配置;
  • mise.local.toml:当前机器的本地覆盖配置。

可以用以下命令查看 mise 实际加载了哪些配置:

mise config ls

因为项目配置可以声明环境变量和执行任务,首次使用来自他人的配置时应先检查内容,再按提示信任。也可以明确执行:

mise trust

不要对来源不明的仓库盲目信任。

常用命令速查

# 查看当前工具
mise ls --current

# 查看可安装版本
mise ls-remote node

# 为当前项目添加工具
mise use node@24

# 设置全局默认版本
mise use -g node@24

# 安装配置中缺失的工具
mise install

# 检查环境和安装问题
mise doctor

# 查看过期工具
mise outdated

# 升级配置中的工具版本
mise upgrade

# 运行项目任务
mise run test

如果你同时维护多个语言或多个项目,mise 最吸引人的地方并不是“又一种版本管理器”,而是它让项目环境本身变得可声明、可复现、可共享。把 mise.toml 放进仓库后,工具版本、环境约定和开发命令就不再只存在于某个人的电脑和记忆里。

更多内容可以参考 mise 官方文档官方配置说明

最后修改:2026 年 07 月 16 日
如果觉得我的文章对你有用,请随意赞赏