nvm
介绍
nvm,全称是Node Version Manager,是用来管理node.js的版本的。有时候做多个项目的时候,每个项目可能用到的node版本不同,或者是使用最新的node版本进行学习和测试。这种情况下可以使用nvm来管理node的版本,它可以来回切换node的版本。
GitHub | node-mac | node-linux
使用
设置默认版本
# 将 v16.18.0 设为默认版本(替换为你的目标版本)
nvm alias default v16.18.0
安装
可以使用curl或者wget下载sh脚本,命令会把文件下载到~/.nvm中,它会自动安装并配置环境变量,最好自己手动检查下脚本中的地址和配置的环境变量是否正确,如果下载不下来,使用 install.sh 脚本自己在本地创建sh脚本然后运行。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
或者
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
安装完配置自己的环境
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
如果出现不能访问 nvm.git
brew install curl nss nspr
yum install curl nss nss-util nspr
卸载node/npm
卸载全局安装的node/npm
首先,打开你 Finder,按 shift+command+G,打开前往文件夹的窗口,分别输入下列目录进去之后删除 node 和 node_modules 相关的文件和文件夹如下
打开 /usr/local/lib,删除 node 和 node_modules 相关的文件和文件夹
打开 /usr/local/include,删除 node 和 node_modules 相关的文件和文件夹
如果你是使用的 brew install node 安装的 NodeJS,那么你还需要在终端中执行 brew uninstall node 命令来卸载
检查你的个人主文件夹下面的所有的 local、lib 以及 include 文件夹,并且删除所有与 node 和 node_modules 相关的文件以及文件夹
打开 /usr/local/bin 并删除 node 可执行文件
删除全局node/npm脚本uninstall-node.sh脚本
#!/usr/bin/env bash
sudo rm -rf /usr/local/lib/node
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/local/include/node
sudo rm -rf /usr/local/include/node_modules
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/bin/npm
sudo rm -rf /usr/local/share/man/man1/node.1
sudo rm -rf /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm -rf /opt/local/bin/node
sudo rm -rf /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules
更换镜像
nvm默认使用的是 http://nodejs.org/dist 的镜像,在国内使用是很慢的。
阿里在国内建有完整的npm镜像 https://npm.taobao.org,在国内速度很快,其中nodejs镜像为 https://npm.taobao.org/mirrors/node 。
# 进入nvm所在的路径,一般会被安装在用户文件夹下
cd ~/.nvm
sed -i 's#https://nodejs.org/dist#https://npm.taobao.org/mirrors/node#g' nvm.sh
常用命令
安装最新的版本
nvm install latest 或者 nvm install 6.14.4
卸载某个版本
nvm uninstall 6.14.4
查看当前版本
nvm version 或 nvm current
安装的版本列表
nvm list
nvm ls-remote
使用固定版本
nvm use 版本号
nvm 与 n 的区别
node 版本管理工具还有一个是 TJ大神的 n 命令,n 命令是作为一个 node 的模块而存在,而 nvm 是一个独立于 node/npm 的外部 shell 脚本,因此 n 命令相比 nvm 更加局限。
由于 npm 安装的模块路径均为 /usr/local/lib/node_modules,当使用 n 切换不同的 node 版本时,实际上会共用全局的 node/npm 目录。 因此不能很好的满足按不同 node 版本使用不同全局 node 模块的需求。