mise

功能介绍

Mise 是一个现代化的多运行时环境管理器,它让开发者能够轻松管理不同项目中的各种开发工具和运行时环境。作为 asdf 的替代品,Mise 提供了更友好的使用体验和更完整的功能支持。

核心特性

  • 便捷的多语言支持
    • 官方支持:Bun, Deno, Erlang, Go, Java, Python, Node.js, Ruby 等主流语言
    • 插件扩展:完全兼容 asdf 插件生态系统,可以通过插件支持更多开发工具
  • 智能的环境管理
    • 项目隔离:每个项目可以使用独立的运行时版本
    • 自动切换:进入项目目录时自动切换到对应的环境配置
  • 简单的版本控制
    • 支持 latest、lts 等便捷的版本标识
    • 全局和项目级的版本管理

日常使用指南

插件管理

# 查看所有可用的插件
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                 # 查看所有设置

实际使用场景

  1. 新项目初始化

    # 进入新项目目录
    cd my-new-project
    
    # 设置项目所需的 Node.js 版本
    mise use [email protected]
    
    # 现在项目就会使用 Node.js 18.12.0
    node --version  # 输出:v18.12.0
    
  2. 多项目切换

    # 项目 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 来管理环境变量。原因如下:

  1. 专注性:direnv 是专门为环境变量管理设计的工具,功能更加完善
  2. 灵活性:可以使用 shell 脚本编写更复杂的环境变量配置
  3. 通用性:不仅限于开发环境,可以用于任何需要环境变量管理的场景
  4. 兼容性:与各种开发工具和环境完美配合

这样的工具分工会让整个开发环境更加清晰:

  • Mise 专注于运行时版本管理
  • direnv 专注于环境变量管理

详细的 direnv 使用方法可以参考我的另一篇文章:direnv:更好的环境变量管理工具

安装与配置

安装

请参考 官方文档 获取详细的安装与配置信息。

配置

Mise 的配置文件位于 ~/.mise.toml,用户可以在此文件中指定所需的工具版本和环境变量。

使用示例

版本管理操作

# 查询可用版本
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/'

性能优化建议

  1. 预安装常用版本

    mise install node@lts [email protected]
    
  2. 启用并行安装

    mise install -p node@18 [email protected] [email protected]
    

参考链接