关于 mise
Mise 是一个多语言运行时管理工具,支持声明式配置和任务执行。通过单一工具管理项目依赖、环境变量和开发工作流,简化开发环境设置。
主要功能
- 01使用配置文件声明和切换多个语言版本
- 02定义并执行项目特定的自定义任务
- 03自动管理环境变量和工具依赖
适用场景
- 01在多项目环境中隔离和管理不同的语言版本
- 02通过统一的命令行接口自动化常见开发任务
- 03为团队成员标准化开发环境配置
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行mise --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍
mise(读作“meez”,是 mise-en-place 的缩写)通过一个 mise.toml 安装项目所需的工具、设置环境变量并运行任务,让这些配置在 shell、编辑器和 CI 中都能生效。使用 mise bootstrap,还可以配置整台机器,包括软件包、dotfiles 和服务。
- 从包含 1,000 多种工具的注册表安装 Node.js、Python 和 Terraform 等工具,并为每个项目使用不同版本。
- 为每个项目设置环境变量并加载
.env文件。 - 使用项目的工具和环境变量运行任务,例如构建和测试。
- 使用
mise bootstrap配置机器,应用你为其声明的系统软件包、dotfiles、代码库和服务。
只使用你需要的部分即可。你可以从一个工具或一个任务开始。
演示
观看 mise 如何通过 mise exec 运行一次工具、设置全局默认值,并在进入和离开项目时切换 Node.js 版本。
演示记录列出了使用当前版本的命令。
快速入门
1. 安装 mise
在 macOS 或 Linux 上:
curl https://mise.run | sh
~/.local/bin/mise --version
在 Windows 上,运行 winget install jdx.mise。有关 Homebrew、apt、Scoop 和其他安装方式,请参阅安装 mise。
安装程序会将 mise 放在 ~/.local/bin。如果该目录不在你的 PATH 中,在第 4 步激活 mise 之前,请在以下步骤中将 mise 替换为 ~/.local/bin/mise。
2. 试用工具
mise exec node@24 -- node --version
# v24.x.x
如果需要,mise exec 会安装 Node.js 24,并使用它运行一条命令。它不会更改你的 shell 或任何配置文件,而且无需激活即可使用。
3. 设置项目
mkdir my-project && cd my-project
mise use node@24
mise use 会安装 Node.js 24,并将其写入新建的 mise.toml。在该文件中添加一个环境变量和一个任务:
[tools]
node = "24"
[env]
NODE_ENV = "development"
[tasks.hello]
description = "Print the Node.js version and NODE_ENV"
run = 'node -e "console.log(process.version, process.env.NODE_ENV)"'
运行任务:
mise run hello
[hello] $ node -e "console.log(process.version, process.env.NODE_ENV)"
v24.x.x development
任务会使用项目的 Node.js 和 NODE_ENV 运行。提交 mise.toml,让团队成员和 CI 使用相同的配置。"24" 是适用于 Node.js 24 系列的版本请求,并非精确锁定版本;如需共享精确版本,请使用锁文件。运行 mise use [email protected] 可为项目添加另一个工具,运行 mise use --global node@24 可在 ~/.config/mise/config.toml 中设置个人默认版本。
若要查看 mise 在此目录中加载了哪些内容:
mise config ls # config files in use here
mise ls --current # tool versions selected by those files
mise doctor # checks the installation and shell activation
4. 在 shell 中激活 mise(可选)
激活后,进入项目时会将项目工具添加到 PATH 并设置环境变量,因此你可以直接运行 node,无需使用 mise exec。如果你是通过 mise.run 安装的,请根据所用 shell 运行一次相应命令:
# bash
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
# zsh
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> "${ZDOTDIR:-$HOME}/.zshrc"
# fish
mkdir -p ~/.config/fish
echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
打开新的 shell。在 my-project 中,运行 node --version 现在会输出 v24.x.x。关于 PowerShell、Nushell 和其他 shell 的设置,或通过其他方式安装 mise 的设置,请参阅 Shell 设置。
接下来可以做什么
| 目标 | 阅读 |
|---|---|
| 阅读完整教程 | 入门指南 |
| 将 mise 添加到你正在开发的项目中 | 现有项目 |
加入已包含 mise.toml 的项目 | 检查其配置,然后运行 mise install 和 mise tasks ls(详情) |
| 设置其他 shell 或补全 | Shell 设置 |
| 查找工具 | 注册表 |
| 在编辑器或 CI 中使用 mise | 编辑器和 IDE · 持续集成 |
| 了解主要功能 | 开发工具 · 环境 · 任务 |
| 设置新设备 | 引导设置 · Dotfiles |
| 查找命令、设置或配置键 | CLI 参考 · 设置 · mise.toml |
| 解决问题 | 故障排除 · 常见问题 |
| 为 mise 或其文档做贡献 | 贡献指南 · 编写文档 |
获取帮助
- 在 GitHub Issues 中报告错误。请先查看
故障排除,并提供你运行的命令、最精简的
mise.toml、预期行为和实际行为,以及检查并移除私人信息后的mise doctor输出。 - 在 GitHub Discussions 中提问并分享想法。
- 在 Discord 上与其他用户交流。
如需报告安全问题或进行其他联系,请参阅 联系方式。在使用 AI 回复 Issue 或 Discussion 前,请阅读 AI 回复政策。
特别鸣谢
感谢 Namespace 为 mise 提供 CI 服务。
