什么是 MISE

mise 是一个现代化的开发环境管理工具,用于统一管理:

  • 编程语言版本
  • 运行时环境
  • CLI 工具
  • 项目级环境变量

核心目标:

  • 一个工具管理所有开发环境
  • 项目级版本隔离
  • 自动切换运行环境
  • 快速安装和切换语言版本

为什么需要 MISE?

在传统开发环境中,一个项目通常需要多个版本管理工具:

例如:

Node.js:

nvm

Python:

pyenv

Java:

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-project

MISE 自动切换:

Node 22
Python 3.11
Java 17

离开项目:

恢复默认环境。


安装 MISE

macOS 推荐使用 Homebrew:

brew install mise

检查:

mise --version

Shell 集成

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

即可获得一致环境。