NVM 是一个非常方便的 Node.js 包管理工具,可以实现在 Node.js 各个不同版本之间自由地进行切换。下面介绍用 root 权限安装 NVM 工具。到 2021 年 7 月,NVM 的最新版本为 v0.39.1。

Linux 安装 NVM

GitHub 地址:https://github.com/nvm-sh/nvm

1. 下载包

1
2
cd /usr/local
wget --no-check-certificate https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.1.tar.gz

2. 解压包

1
tar -xvf v0.39.1.tar.gz

在这里拿到文件的安装目录,放哪里无所谓。

3. 配置 bashrc 文件

export NVM_DIR="/usr/local/nvm-0.39.1" 改成自己的目录。

1
2
3
4
5
6
# 编辑文件
vim ~/.bashrc

export NVM_DIR="/usr/local/nvm-0.39.1"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

4. 使用

命令行生效,敲一下命令:

1
2
3
4
5
6
# 刷新配置
source ~/.bashrc
# 判断 nvm 是否安装
nvm -v
nvm install 16.15.0
nvm install 12.16.0

可以看到我这里已经使用 NVM 安装了两个不同版本的 Node.js。

在哪个项目中使用 NVM 就直接 nvm use 版本 切换就可以了。

5. 使用 NVM 下载相关 Node 版本

1
2
3
4
5
6
7
nvm install 14.13.2
# nvm 常用命令
nvm uninstall 14.13.2 # 移除 node 14.13.2
nvm use 14.13.2 # 使用 node 14.13.2
nvm ls # 查看目前已安装的 node 及当前所使用的 node
nvm ls-remote # 查看目前线上所能安装的所有 node 版本
nvm alias default 14.13.2 # 使用 14.13.2 作为预设使用的 node 版本

设置国内代理【可选】

1
2
# 默认地址为:https://nodejs.org/dist
export NVM_NODEJS_ORG_MIRROR=https://mirrors.aliyun.com/nodejs-release/

问题

安装 Node 18 以上的版本时出现:node: /lib64/libm.so.6: version 'GLIBC_2.27' not found (required by node)

参考:https://github.com/nvm-sh/nvm/issues/2972

方案:the linux kernel version is too old to match the node v18, and the solution is either upgrade the glibc version or downgrade the node's version

需要升级 glibc 到 2.27 以上或者降级 Node 版本。

Windows 安装 NVM

GitHub 地址:https://github.com/coreybutler/nvm-windows/releases

可以选择 noinstallsetup 安装,区别是前者是免安装版,需要手动配置,略麻烦。

这里建议把 Node.js 和 NVM 安装到同一个文件夹下面,方便管理。

1. 修改 NVM 的安装配置

因为 NVM 默认安装 Node 使用的是国外的镜像,为了避免安装失败,所以要修改一下 NVM 配置。首先打开你的 NVM 所在文件夹,用编辑器打开 settings.txt

1
2
3
4
root: D:\Software\nvm\nvm
path: D:\Software\nvm\nodejs
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

2. 安装

  • 添加完之后打开命令行工具执行 nvm install [version],这里的 version 指的是你想要安装的 Node 版本,下同。
  • 安装完成后使用 nvm ls 查看已安装的 Node 版本。
  • 使用 nvm use [version] 来使用你选择的 Node 版本。
  • 也可使用 nvm uninstall [version] 卸载 Node 版本。

例如 nvm install 10.24.1 则是安装 v10.24.1 版本的 Node,而 nvm uninstall 10.24.1 为卸载 v10.24.1 版本的 Node。

安装完成后在命令行工具输入 node -vnpm -v 检查是否安装成功,若命令行输出版本号则说明安装成功。

注:如果输入 npm / node 命令提示 not found,可以下载一个之前没下过的版本,令 NVM 生成 D:\Software\nvm\nodejs 即可。

3. 配置 npm

首先打开安装 NVM 时创建的 nodejs 文件夹,然后在里面创建 node_globalnode_cache 两个文件夹。

然后在命令行工具执行下面两条命令来修改 npm 全局安装包和缓存的位置:

1
2
npm config set cache=D:\Software\nvm\nodejs\node_cache
npm config set prefix=D:\Software\nvm\nodejs\node_global

这时候使用 npm 安装的全局包都会安装到指定的路径,可以在命令行工具执行 npm i express -g

配置好后在 C:\Users\admin 下会出现 .npmrc 这个文件,说明配置成功,接下来配置环境变量。

4. 环境变量

配置环境变量的目的主要是全局依赖的指令能够在命令行里使用。

右键我的电脑 > 属性 > 高级系统设置,高级选项卡里选择环境变量。

用户变量里选择 path 后,查看是否有这些,如果没有则添加上去:

然后在系统变量选择新建,添加 NODE_PATH

注意:如果全局安装的包无法找到,即无法使用全局命令,可以尝试将 NODE_PATH 变量值后面的 \node_modules 去掉,然后重新打开应用程序尝试。

如果还无法使用全局命令,尝试右键将"以管理员身份运行此程序"选项打开。

配置完成。