先介绍下Mise 是什么
Mise = 现代多语言运行时版本管理器 前身是 rtx,对标:nvm + pyenv + goenv + jenv + sdkman 合体工具
一句话作用:一台电脑自由切换任意版本 Node、Python、Java、Go、PHP、Rust 等
特点:跨平台、统一命令、项目隔离、全局隔离、自动环境
优势:比 nvm 更全能,比 scoop/choco 更轻量,无依赖、绿色安装
背景
目前前端react项目都是用nvm来管理node版本,不管是开发者本机还是服务器上;在不同版本的node项目下,需要手动通过nvm use xxx的命令来切换node版本;
官网地址:mise
Windows 下正确安装方式
由于现在我们window10系统太低,PowerShell版本也很低,而且微软商店被网络限制禁掉了,所以直接按照官方文档来安装无法安装。
1. 下载scoop
csharp
# 安装 Scoop
irm get.scoop.sh | iex
安装完输入:
scoop --version
不报错就是安装成功

2、装完 Scoop 后,直接装 mise
scoop install mise
安装后输入,显示版本号表示安装成功
mise -v

3、配置环境变量,解决node找不到的问题
如果本地之前配置过nvm开头的环境变量和nodejs的环境变量,需要先删掉,但是为了保险起见,可以截图或者复制保存起来;我们选择不卸载nvm,但是删除环境变量的方式,保证了在无法达到预期情况下还有回退的路径;
接着添加mise的环境变量;如下图,环境变量指向shims的位置,是为了激活mise,因为本地PowerShell版本太低,所以采取这种方案。

4、下载node,验证环境变量配置是否成功
我们将首先安装 node@14.17.3 并将其设置为全局默认版本。输出版本号表示环境变量配置成功
perl
mise use --global node@14.17.3
# v14.17.3
node -v
# v14.17.3
5、让我们进入项目目录,我们将在其中设置 node@20.19.0
perl
cd myproj
mise use node@20.19.0
node -v
# 20.19.0
如图:

6、为什么选择mise
使用mise,不用使用命令切换node版本,它可以根据项目中的配置文件读取node所需版本并切换; 两种方式都可以创建配置文件;
1、手动创建,在根目录下创建.config/mise/config.toml,文件内容:
ini
[tools]
node = "14.17.3"
2、命令行创建,进入项目文件后,mise use node@xxx,会自动创建配置文件与内容,配置文件内容和上面手动创建的一致。
同理,修改配置文件中node版本号之后,在控制台打印该项目下的node版本会随之更新。
7、安装多版本node后目录
如图所示,安装多个版本node后的目录长这样:

那基于不同node版本安装的全局依赖包又在哪呢?如图所示:

分别在对应版本的node_modules文件夹下,不同版本之间依赖包不共用,这样有效隔离,防止版本污染。