Post

Mise:统一管理多语言开发环境的实用工具

2026-04-30

macOS 上使用 mise 的完整指南

概述

mise 是一个统一的开发环境管理工具,旨在替代 pyenv、nvm、asdf 等工具,用于管理多语言版本和项目环境。它通过全局/项目级配置、任务定义和环境切换功能,简化开发环境的管理流程。

安装与初始化

安装方法

推荐通过 Homebrew 安装:

brew install mise

验证安装结果:

mise --version

若输出类似 mise 2025.1.0,则安装成功。

Shell 配置

根据使用的 Shell 类型修改配置文件:

  • Zsh(macOS 默认 Shell)
    编辑 ~/.zshrc,添加:

    eval "$(mise activate zsh)"
    
  • Bash
    编辑 ~/.bashrc~/.bash_profile,添加:

    eval "$(mise activate bash)"
    
  • Fish
    编辑 ~/.config/fish/config.fish,添加:

    mise activate fish | source
    

配置完成后,重启终端或执行 source ~/.zshrc 生效。

配置管理

全局配置

全局配置文件位于 ~/.config/mise/config.toml,示例内容:

[tools]
python = "3.11"
node = "20"
go = "1.21"
java = "17"
rust = "stable"

[env]
PYTHONUTF8 = "1"
PIP_DISABLE_PIP_VERSION_CHECK = "1"

此配置会为所有项目默认指定语言版本和环境变量。

项目配置

在项目根目录创建 mise.toml 文件,内容会覆盖全局配置。例如:

[tools]
python = "3.10"
node = "18"
poetry = "1.6.1"

[env]
DJANGO_SETTINGS_MODULE = "myapp.settings"
NODE_ENV = "development"

进入该目录后,mise 会自动切换到指定版本。

工具管理与任务定义

安装工具

安装配置文件中定义的工具:

mise install

或指定版本:

mise install python@3.12
mise install node@20

列出已安装工具:

mise list

定义与运行任务

mise.toml 中添加任务定义(类似 Makefile):

[tasks]
[task.setup]
description = "安装依赖"
run = ["poetry install", "npm install"]

[task.dev]
description = "运行后端和前端"
run = ["poetry run python manage.py runserver", "npm run dev"]

执行任务:

mise run setup
mise run dev

替代工具对比

mise 可替代以下工具:

  • pyenv(Python 版本管理)
  • nvm(Node.js 版本管理)
  • goenv(Go 版本管理)
  • jenv(Java 版本管理)
  • rustup(Rust 版本管理)
  • asdf(多语言版本管理工具)

实际应用示例

以 Django + React 项目为例,mise.toml 配置如下:

[tools]
python = "3.11"
node = "20"
poetry = "1.6.1"

[env]
DJANGO_SETTINGS_MODULE = "myproject.settings"
NODE_ENV = "development"

[tasks]
[task.setup]
description = "安装依赖"
run = ["poetry install", "npm install"]

[task.dev]
description = "启动 Django 和 React"
run = ["poetry run python manage.py runserver", "npm run dev"]

使用流程:

mise install
mise run setup
mise run dev

通过以上步骤,可一键进入项目环境并启动服务。

常见命令速查

功能 命令示例
安装所有配置工具 mise install
安装指定版本 mise install python@3.10
卸载版本 mise uninstall node@18
切换语言版本 mise use python@3.11
查看当前环境 mise list
检查环境状态 mise doctor
运行任务 mise run setup

注意事项

  • mise 的配置优先级:项目级配置 > 全局配置。
  • 若需管理非主流语言版本,需确保对应工具支持。
  • 任务定义中的命令需与项目实际依赖匹配,避免执行失败。