安装
最近刚更换 Mac 本进行项目的开发,刚上手 Mac 本还不是很熟练,需要安装 Node.js 的包管理工具
在 Windows 上我是实用的 nvm 来管理的 Node 版本,但是我尝试下载 Nvm ,发现下载安装后的 Nvm 无法使用,提示 "This is not the package you are looking for: please go to http://nvm.sh"。同事告诉我在Mac 需要实用 n 这个工具
于是就去网上查了一下,发现千遍一律的都是让你使用 Homebrew 来安装,但是我的 Mac 本安装了 Homebrew 后依旧无法下载这个管理工具,大致错误提示是 "Failed to connect to raw.githubusercontent.com port 443: Connection refused"
后来经过一番操作,发现其实安装 n 完全不需要使用 Homebrew 呀。完全可以使用 npm 去安装,合并要弄的这么麻烦
一、首先先去 node 官网随便下载一个 node 安装在自己电脑上,这一步的目的是让你的电脑上有 npm 可用
二、然后再 通过 npm 去安装 n 这个工具,命令如下:
javascript
npm install -g n // 安装
n --version // 查看版本
老规矩,安装之后能查看到版本表示安装成功,如下图:

此致,n 安装成功
使用
使用命令跟 nvm 差不多的,这里就罗列几个我常用的命令,其他的命令大家前官网看
javascript
// 安装node. sudo:类似于winsows的管理员身份。安装版本号前需要给一个v
sudo n install v16.20.0
// 使用某个版本。不需要加 v
sudo n use xxx
sudo n use 16.20.0
// 卸载某个版本
sudo uninstall xxx
sudo uninstall 16.20.0
踩坑
一、版本切换不成功:
我常用的 node 版本是 16.20.0 14.20.1 于是我就使用 install 安装了这两个版本的 node,我先安装的 16.20.0 版本,然后使用 use 切换到这个版本,再 node -v 查看当前的 node 版本,确实是 16.20.0,到这里一切正常
于是我又实用 install 安装了 14.20.1,这时候我并没有再使用 use 去切换 node 版本,发现我的 node 版本既然神奇的自己切换到 14.20.1 这个版本了,于是我再次使用 use 去切换回 16.20.0 的版本,提示我却换成功,但是实际node却依旧是 14.20.1,也就是没有却换成功。

使用 use 切换 node 版本成功,提示 "Welcome to Node.js v16.20.0."
但是 node -v 依旧是 14.20.1

什么意思?难到会自己切换到最后安装的版本上??于是我卸载了上面两个 node 版本,随便去下载了俩个 14.20.5。 14.20.7。 发现确实会自己切换到最后下载的版本上
二、切换不成功的处理办法
至于为什么切换不成功,刚接触 Mac本还没有去深入了解,先解决遇到的问题再说
既然命令切换不成功其实还有一种切换方法
在终端中输入 n 会看到你当前下载的 node 版本列表,并且下面有一段提示:

Use up/down arrow keys to select a version, return key to install, d to delete, q to quit
使用上下方向键选择版本,回车键安装,d键删除,q键退出
也就是说我们可以直接通过上下键选择版本,回车键切换 node 版本,这样比使用命令还方便
上下键选择版本,回车确认后会看到如下的输出:

最后版本切换成功:

所以别再都使用 Homebrew 去安装了,直接 npm 去安装也是可行的,还更加方便