Mise 是一个强大的多运行时版本管理器,帮助开发者在不同项目间无缝切换各种编程语言和工具的版本。
功能介绍
Mise 是一个现代化的多运行时环境管理器,它让开发者能够轻松管理不同项目中的各种开发工具和运行时环境。作为 asdf 的替代品,Mise 提供了更友好的使用体验和更完整的功能支持。
核心特性
- 便捷的多语言支持:
- 官方支持:Bun, Deno, Erlang, Go, Java, Python, Node.js, Ruby 等主流语言
- 插件扩展:完全兼容 asdf 插件生态系统,可以通过插件支持更多开发工具
- 智能的环境管理:
- 项目隔离:每个项目可以使用独立的运行时版本
- 自动切换:进入项目目录时自动切换到对应的环境配置
- 简单的版本控制:
- 支持
latest
、lts
等便捷的版本标识 - 全局和项目级的版本管理
- 支持
- 任务运行器:
- 内置任务定义和执行功能
- 可替代项目中的 Makefile 或自定义脚本 (Just 类似的功能,参考:探索 Just:让日常命令自动化的神器)
日常使用指南
插件管理
# 查看所有可用的插件
mise plugins list-all
# 安装插件(比如要使用 node)
mise plugins add node
# 查看已安装的插件
mise plugins ls
版本管理命令
# 查看远程可用版本
mise ls-remote node # 列出所有可用的 Node.js 版本
mise ls-remote python # 列出所有可用的 Python 版本
# 查看已安装的版本
mise ls node # 查看已安装的 Node.js 版本
mise ls # 查看所有工具的已安装版本
# 安装特定版本
mise install [email protected] # 安装指定版本的 Node.js
mise install [email protected] # 安装指定版本的 Python
# 设置版本
mise use --global [email protected] # 设置全局默认版本
mise use [email protected] # 设置当前项目的版本
mise use node@lts # 使用 LTS 版本
环境变量配置
# 设置环境变量
mise set NODE_ENV=development # 设置环境变量
# 查看当前配置
mise settings # 查看所有设置
实际使用场景
-
新项目初始化:
# 进入新项目目录 cd my-new-project # 设置项目所需的 Node.js 版本 mise use [email protected] # 现在项目就会使用 Node.js 18.12.0 node --version # 输出:v18.12.0
-
多项目切换:
# 项目 A 使用 Node.js 18 cd project-a mise use [email protected] # 项目 B 使用 Node.js 16 cd project-b mise use [email protected]
当使用 VS Code 或其他编辑器打开项目时,Mise 会自动加载项目配置的版本,不需要手动切换,非常方便。
配置文件示例
# mise.toml 示例
[tools]
node = "18.12.0"
python = "3.10.0"
[env]
NODE_ENV = "development"
这个配置文件会自动生成在你的项目目录下,记录了项目所需的工具版本和环境变量。每次进入项目目录时,Mise 都会自动应用这些配置。
关于环境变量管理的建议
虽然 Mise 提供了环境变量管理功能,但我个人更推荐使用 direnv 来管理环境变量。原因如下:
- 专注性:direnv 是专门为环境变量管理设计的工具,功能更加完善
- 灵活性:可以使用 shell 脚本编写更复杂的环境变量配置
- 通用性:不仅限于开发环境,可以用于任何需要环境变量管理的场景
- 兼容性:与各种开发工具和环境完美配合
这样的工具分工会让整个开发环境更加清晰:
- Mise 专注于运行时版本管理
- direnv 专注于环境变量管理
详细的 direnv 使用方法可以参考我的另一篇文章:利用 direnv 管理项目环境变量,提高开发效率。
安装与配置
安装
请参考 官方文档 获取详细的安装与配置信息。
配置文件结构
Mise 支持多个配置文件位置,按优先级从高到低排序:
mise.local.toml
- 本地配置,不应该提交到版本控制mise.toml
mise/config.toml
.config/mise.toml
- 用于将配置文件组织到公共目录.config/mise/config.toml
.config/mise/conf.d/*.toml
你可以运行 mise config
来查看 mise 加载了哪些配置文件及其优先级顺序。
使用示例
版本管理操作
# 查询可用版本
mise ls-remote node # 列出所有可用的 Node.js 版本
mise ls node # 列出已安装的 Node.js 版本
# 版本安装与切换
mise use -g [email protected] # 全局安装指定版本
mise use [email protected] # 项目级安装
mise use node@lts # 安装 LTS 版本
mise use node@latest # 安装最新版本
# 多运行时并存
mise use node@18 [email protected] # 同时配置多个运行时版本
高级配置示例
# mise.toml 示例
[tools]
node = "22.9.0"
python = "3.10.0"
[env]
NODE_ENV = "development"
PYTHONPATH = "${PWD}/src"
[tasks]
start = "npm start"
test = "pytest tests/"
deploy = "bash ./scripts/deploy.sh"
性能优化建议
-
预安装常用版本:
mise install node@lts [email protected]
-
启用并行安装:
mise install -p node@18 [email protected] [email protected]
CI/CD 集成
在持续集成和部署流程中,Mise 也能发挥重要作用:
# GitHub Actions 示例
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: jdx/mise-action@v2
- run: mise install
- run: mise run test
💭 欢迎留下你的想法!
🌟 你的想法对我来说非常宝贵! 💎
🗣️ 无论是分享经验、❓ 提出问题还是 💡 给予建议,都欢迎留言 📝
🔔 通过评论通知系统,我能够⚡ 及时收到并回复你的评论 🚀💬