NVM 安装使用

NVM 安装使用
狂犬主子NVM,即 Node Version Manager,是一个符合 POSIX 标准的 bash 脚本,主要用于管理多个活动的 node.js 版本。借助 NVM,开发者能够轻松地在不同的 Node.js 版本之间进行切换,满足不同项目对 Node.js 版本的需求。
GitHub: https://github.com/nvm-sh/nvm
安装
下面详细介绍在 *nix 系统(Linux 和 macOS)和 Windows 系统上的安装方式。
Linux / macOS
在安装 NVM 之前,需要先确保系统中已经安装好 git
、curl
或 wget
。一般情况下,安装过程不需要 sudo
权限。
安装命令
可以选择使用 curl
或 wget
来执行安装操作,以下是具体命令:
使用 curl
安装:
1 | rm -r ~/.nvm curl -L -o- https://gh.xrgzs.top/https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | sed 's|https://\(raw\.\)\?github\(usercontent\)\?\.com|https://gh.xrgzs.top/&|g; s|curl --fail|& -L|g' | bash |
使用 wget
安装:
1 | rm -r ~/.nvm wget -qO- https://gh.xrgzs.top/https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | sed 's|https://\(raw\.\)\?github\(usercontent\)\?\.com|https://gh.xrgzs.top/&|g; s|curl --fail|& -L|g' | bash |
立即使用配置
安装完成后,如果希望立即使用 NVM,而不是重启终端,可以通过以下方式重载环境:
方法一:
1 | 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 |
方法二:
1 | source ~/.profile # 如果使用的是 zsh 终端,可以使用下面的命令 # source ~/.zprofile |
安装目录
NVM 的安装目录为:~/.nvm
换源
默认情况下,NVM 使用 nodejs.org
作为默认源。如果在下载 Node.js 版本时遇到下载缓慢的问题,可以通过设置环境变量来更改源:
1 | export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node |
设置完成后,建议重启终端使环境变量生效。
Windows
在 Windows 系统下,有两种安装 NVM 的方式可供选择,下面分别进行介绍。
1、使用官方 Bash 版本
需要注意的是,NVM 是一个 Bash 脚本,而 Windows 系统默认没有 Bash 环境。不过,如果你安装了 Git for Windows,那么系统中应该会有一个 Git Bash;或者安装了 Cygwin 或者 MSYS2,也可以在 Windows 下使用 Bash。
然而,这种方式存在一些缺点:
- 执行效率低:目前这个 NVM 只能在 Bash 中使用,CMD、PowerShell 都无法使用,而且执行效率非常低。每次调用都相当于开机关机一遍 MINGW64,你可能会发现 Git Bash 的打开速度变慢,甚至可能需要 5 秒以上才能打开。查看
$HOME/.nvm/nvm.sh
文件,会发现其足足有 4000 多行,每次启动都会执行,由于 Windows 下 Shell 性能较差,卡顿现象比较明显。 - 可能出现奇怪问题:据说这样使用会发生一些奇奇怪怪的问题,比如符号链接、UAC 权限等。
2、使用 nvm-windows
由于 Windows 下的 Shell 脚本存在使用不便的问题,有人用 Golang 重构出了 nvm-windows,推荐使用这种方式进行安装。
使用 Scoop 安装
可以使用 Scoop 包管理器来安装 nvm-windows,执行以下命令:
1 | scoop install main/nvm |
换源
为了提高下载速度,我们可以给 nvm-windows 换源。修改环境变量后,需要重启 PowerShell 或 CMD 才能生效。
设置 node 镜像源:
1 | nvm node_mirror [url] : Set the node mirror. Defaults to https://nodejs.org/dist/. Leave [url] blank to use default url. |
设置 npm 镜像源:
1 | nvm npm_mirror [url] : Set the npm mirror. Defaults to https://github.com/npm/cli/archive/. Leave [url] blank to default url. |
这里推荐使用 npmmirror.com 提供的源,执行以下命令:
1 | nvm node_mirror https://npmmirror.com/mirrors/node/ nvm npm_mirror https://npmmirror.com/mirrors/npm/ |
更改安装位置
对于 Windows 用户,可能习惯对磁盘进行分区。如果使用 Scoop 安装,且 Scoop 安装到了 D 盘,那么 NVM 安装的 Node.js 也会跟随 Scoop 一起安装到 D 盘。如果 Scoop 安装在 C 盘,但想让 NVM 将 Node.js 安装到 D 盘,可以使用 nvm root [path]
命令进行修改,例如:
1 | nvm root "d:\nodejs" |
使用
列出所有能装的版本
此命令在 nvm-windows 中不可用,在 Linux 或 macOS 系统下,使用以下命令可以列出所有可安装的 Node.js 版本:
1 | x@vbox:~$ nvm ls N/A iojs -> N/A (default) node -> stable (-> N/A) (default) unstable -> N/A (default) lts/* -> lts/jod (-> N/A) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.24.1 (-> N/A) lts/erbium -> v12.22.12 (-> N/A) lts/fermium -> v14.21.3 (-> N/A) lts/gallium -> v16.20.2 (-> N/A) lts/hydrogen -> v18.20.8 (-> N/A) lts/iron -> v20.19.2 (-> N/A) lts/jod -> v22.16.0 (-> N/A) |
安装使用长期支持版 Node.js
如果你希望安装并使用长期支持(LTS)版本的 Node.js,可以使用以下命令:
1 | nvm install --lts nvm use --lts |
安装指定版本的 Node.js
要安装指定版本的 Node.js,只需在 nvm install
命令后面跟上版本号即可,例如安装 Node.js 18 版本:
1 | nvm install 18 |
切换到指定版本的 Node.js
安装多个 Node.js 版本后,可以使用 nvm use
命令切换到指定版本,例如切换到 Node.js 18 版本:
1 | nvm use 18 |
npm 换源
为了提高 npm 包的下载速度,可以将 npm 的源更换为国内的镜像源,例如 npmmirror.com 提供的源:
1 | npm config set registry https://registry.npmmirror.com |
安装 pnpm
pnpm 是 Node.js 的新一代包管理器,旨在更好地解决 npm 存在的一些问题。其官网为:https://pnpm.io/
可以使用以下命令全局安装 pnpm:
1 | npm install -g pnpm # 也可以使用 corepack 来启用 pnpm # corepack enable pnpm |