mise

功能介绍

Mise 是一个现代的包管理工具,它支持多种编程语言的环境管理。与传统的包管理工具相比,Mise 提供了更为灵活和高效的方式来处理项目依赖。它允许用户在不同项目之间快速切换所需的依赖版本,而不会相互干扰。

主要特点

  • 多语言支持:Mise 支持多种编程语言,包括但不限于 Bun, Deno, Erlang, Go, Java, Python, Node.js, Ruby 等。(注:以上属于官方支持,实际上 mise 支持的语言远不止这些,它能够兼容 asdf 的插件)
  • 隔离环境:每个项目的依赖都在独立的环境中管理,确保环境之间的隔离。
  • 版本控制:可以精确控制依赖的版本,方便项目的迁移和部署。

工作原理

Mise 通过修改 PATH 环境变量,将其指向包含所需版本的二进制文件的目录,从而允许用户在不同项目中使用不同版本的工具。例如,如果您安装了 Node.js 的特定版本,Mise 会将 PATH 更新为包含该版本的 nodenpm 二进制文件的目录。

安装与配置

安装

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

配置

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

只需要去掉 -g 参数,就可以在当前项目中安装指定版本的 node. 这个会在当前目录下生成 .mise.toml 文件,并且将配置写入其中。

当你使用 vscode 打开此项目的时候,系统就会自动使用配置中的 node 版本,并且将此项目中所有的 node 版本都设置为 22.9.0. (见文章开头配图)

环境变量管理

mise 还有一个卖点是环境变量管理,但是我个人是不使用的,我还是坚持使用 direnv 来管理环境变量,因为我觉得这样更灵活,更方便。

参考链接