如何在mac中管理和随时切换node版本

之前用windows的电脑的时候,曾使用 nvm-windows 工具来管理开发环境中的node版本。快速在各个版本的node环境中切换的体验非常好。而在mac中,由于开发环境比较稳定,则没有使用这类工具来管理。近期由于项目的需要,有了在mac下频繁切换node版本的需求。才有了这篇文章。

工具选择

我根据第一直觉,在npm上搜索 nvm,竟没有 nvm 的精确匹配,搜索结果第一位是一个叫 n 的包,点进去,也没个README说明(其实是当时我的网络不好README没有加载出来…)。(说实话,要不是发现它的作者是tj大神,我后来可能不会再次点开它,可能我就错过了一个非常好的工具。)

诧异过后,我转到github,搜索 nvm。 找是找到了,然而,它的安装方式,让我觉得不太友好:

1
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

为什么nvm没有pacakge版?不如看看那个”连README都没有”的 n 是否能用。我点开了 n 的github页面。详细的使用说明映入眼帘,粗略读了一遍,感觉有戏。仔细操作一遍,这感觉,怎么说呢,这是捡到宝了呀!

就它了! n!

如何使用 n 管理mac上的node版本

1. 安装

1
npm install -g n

2. 修改几个本地目录的拥有者

因为node环境是全局的,需要安装到系统目录下,涉及目录有 /usr/local/binusr/local/lib/usr/local/include/usr/local/share,这几个目录的拥者是root,其他用户没有权限操作他们。如下命令可以将他们的拥有者从root改为当前用户:

1
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

另外,n 会在系统目录下创建一个目录,也需要修改下它的拥有者:

1
sudo chown -R $(whoami) /usr/local/n

关于 chown 命令,我的另一篇文章有详细说明: 如何修改mac中文件夹和文件的拥有者

3. 安装指定版本的node

1
2
3
n 10.16.3 //下载并安装node 10.16.3
n latest //下载并安装node 最新版本
n lts //下载并安装node 长期稳定维护版

4. 切换node版本

1
2
3
4
5
6
7
n //列出所有缓存的node版本
node/4.4.4
ο node/8.11.1
node/10.16.3
Use up/down arrow keys to select a version, return key to install, q to quit
-> 上下键选择当前需要的版本,回车
-> done

node -v 查看版本是否生效。

5. 删除node版本

1
2
3
4
5
6
//删除指定版本
n rm xxx
//删除当前版本外的所有版本
n prune
//卸载当前已安装的node
n uninstall

6. 其他命令

1
n ls //查看已下载的node版本列表

补充
n 的获取node的源路径为node官网https://nodejs.org/dist/,在国内访问,非常慢,经常由于太慢而发生超时错误导致下载失败。解决方案:修改node镜像源。

1
export N_NODE_DOWNLOAD_MIRROR=https://npm.taobao.org/mirrors/node

将node镜像指向淘宝镜像。再来操作 n 命令,是不是速度嗖嗖的了。

GOOD LUCK!


参考:
n (npm):https://www.npmjs.com/package/n
n (github):https://github.com/tj/n
nvm :https://github.com/nvm-sh/nvm
nvm-window :https://github.com/coreybutler/nvm-windows