功能介绍
Mise 是一个现代的包管理工具,它支持多种编程语言的环境管理。与传统的包管理工具相比,Mise 提供了更为灵活和高效的方式来处理项目依赖。它允许用户在不同项目之间快速切换所需的依赖版本,而不会相互干扰。
主要特点
- 多语言支持:Mise 支持多种编程语言,包括但不限于 Bun, Deno, Erlang, Go, Java, Python, Node.js, Ruby 等。(注:以上属于官方支持,实际上 mise 支持的语言远不止这些,它能够兼容 asdf 的插件)
- 隔离环境:每个项目的依赖都在独立的环境中管理,确保环境之间的隔离。
- 版本控制:可以精确控制依赖的版本,方便项目的迁移和部署。
工作原理
Mise 通过修改 PATH
环境变量,将其指向包含所需版本的二进制文件的目录,从而允许用户在不同项目中使用不同版本的工具。例如,如果您安装了 Node.js 的特定版本,Mise 会将 PATH
更新为包含该版本的 node
和 npm
二进制文件的目录。
安装与配置
安装
请参考 官方文档 获取详细的安装与配置信息。
配置
Mise 的配置文件位于 ~/.mise.toml
,用户可以在此文件中指定所需的工具版本和环境变量。
使用示例
查看所有可安装的 node 版本
mise ls-remote node
全局安装指定版本 node
mise use -g [email protected]
全局安装 node lts 版本
mise use -g node@lts
mise 会将 配置添加到全局的 ~/.mise.toml 文件中,如果系统没有安装此版本的 nodejs, mise 会自动下载并安装。
这个其实是 mise 自带的一个语法糖,帮你找到 node 的 版本,然后安装,同样的还有 latest 版本
项目中安装指定版本 node
mise use [email protected]
只需要去掉 -g 参数,就可以在当前项目中安装指定版本的 node. 这个会在当前目录下生成
.mise.toml
文件,并且将配置写入其中。
当你使用 vscode 打开此项目的时候,系统就会自动使用配置中的 node 版本,并且将此项目中所有的 node 版本都设置为 22.9.0. (见文章开头配图)
环境变量管理
mise 还有一个卖点是环境变量管理,但是我个人是不使用的,我还是坚持使用 direnv 来管理环境变量,因为我觉得这样更灵活,更方便。