什么是 MISE
mise 是一个现代化的开发环境管理工具,用于统一管理:
- 编程语言版本
- 运行时环境
- CLI 工具
- 项目级环境变量
核心目标:
- 一个工具管理所有开发环境
- 项目级版本隔离
- 自动切换运行环境
- 快速安装和切换语言版本
为什么需要 MISE?
在传统开发环境中,一个项目通常需要多个版本管理工具:
例如:
Node.js:
nvmPython:
pyenvJava:
sdkman长期维护后容易出现:
- 工具越来越多
- 配置分散
- 不同项目版本冲突
- 新电脑环境恢复困难
例如:
项目 A:
Node 20
Python 3.11
Java 17
项目 B:
Node 22
Python 3.12
Java 21
如果没有统一管理,很容易污染全局环境。
MISE 的解决方案:
mise
┌───────────────┐
│ Runtime 管理 │
├───────────────┤
│ Node │
│ Python │
│ Java │
│ Go │
│ Rust │
├───────────────┤
│ CLI 工具 │
├───────────────┤
│ 环境变量管理 │
└───────────────┘
MISE 核心理念
项目优先,而不是全局优先
MISE 推荐:
项目目录
│
├── .mise.toml
│
├── package.json
├── pyproject.toml
└── src
每个项目声明自己的环境。
例如:
.mise.toml
[tools]
node = "22"
python = "3.11"
java = "17"进入项目:
cd my-projectMISE 自动切换:
Node 22
Python 3.11
Java 17
离开项目:
恢复默认环境。
安装 MISE
macOS 推荐使用 Homebrew:
brew install mise检查:
mise --versionShell 集成
MISE 需要接管 Shell,推荐 zsh:
编辑:
~/.zshrc加入:
eval "$(mise activate zsh)"重新加载:
source ~/.zshrc检查:
mise doctor常用命令
查看当前环境
mise current输出:
node 22.15.0
python 3.11.15
java 17.0.12
查看已经安装的工具
mise list例如:
node
└─22.15.0
python
└─3.11.15
java
└─17.0.12
查看支持的工具
mise plugins ls-remote例如:
mise plugins ls-remote | grep python管理 Node.js
安装:
mise use -g node@22项目指定:
mise use node@20生成:
.mise.toml
查看:
node -v管理 Python
安装 Python:
mise install python@3.11项目使用:
mise use python@3.11验证:
python --version输出:
Python 3.11.15
管理 Java
安装:
mise install java@17使用:
mise use java@17查看:
java -version.mise.toml 项目配置
推荐提交到 Git:
project
├── .mise.toml
├── README.md
├── package.json
└── src
示例:
[tools]
node = "22.15.0"
python = "3.11.15"
java = "17"
[env]
NODE_ENV = "development"团队成员:
git clone project
mise install即可获得一致环境。