Post
Mise:统一管理多语言开发环境的实用工具
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 的配置优先级:项目级配置 > 全局配置。
- 若需管理非主流语言版本,需确保对应工具支持。
- 任务定义中的命令需与项目实际依赖匹配,避免执行失败。