nvm (Node Version Manager) 是一个用于管理 Node.js 版本的工具,可以让用户在同一台机器上安装和切换多个 Node.js 版本,非常适合开发环境中需要兼容不同 Node.js 版本的场景。
下载 & 安装
针对 windows 用户,推荐使用 nvm-windows。选择最新版本的安装程序,如下所示:
双击运行安装程序,在安装过程中,可以选择 nvm 和 Node.js 软链接的安装路径。完成路径选择后,按照提示依次点击 ➡️ 下一步即可完成安装。如下所示:
安装完成之后,可以使用 nvm version
命令测试 nvm 是否安装成功。若输出版本号,则说明 nvm 已成功安装。
不要急着安装 Node.js,可以先使用如下命令配置 Node.js 和 npm 的镜像源地址。
nvm node_mirror https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/
或者直接前往 nvm 的安装目录,找到 settings.txt 文件,在其中手动配置镜像源地址。
常用命令
nvm list available
:列出所有可安装的 Node.js 版本。nvm install <version>
:安装指定版本,如nvm install 18
。nvm use <version>
:切换到指定版本,如nvm use 18
。nvm list
:查看本地已安装的 node 版本,并高亮显示当前正在使用的 Node.js 版本。nvm current
:显示当前正在使用的 Node.js 版本。nvm uninstall <version>
:卸载指定版本,将删除该版本下安装的所有包,如nvm uninstall 18.20.4
。
npm 配置
全局模块路径和缓存路径配置
我们可以使用 npm root -g
或 npm config ls
命令来查看 npm 默认的全局模块路径。后者提供的信息更加详细,列出了所有配置选项及其当前值。
在修改 npm 默认配置之前,首先在 Node.js 安装目录(如:E:\devsoft\nodejs)下创建两个文件夹:node_global 用于存放全局模块,node_cache 用于存放全局缓存。
- 全局模块路径:
npm config set prefix "E:\devsoft\nodejs\node_global"
; - 全局缓存路径:
npm config set cache "E:\devsoft\nodejs\node_cache"
;
最后,可以通过 npm config ls
命令查看修改后的 npm 配置,如下所示:
环境变量配置
- 右键点击 " 计算机 " 或 " 此电脑 ",选择 " 属性 "。
- 点击 " 高级系统设置 "。
- 在弹出的 " 系统属性 " 窗口中,点击 " 环境变量 "。
- 在 " 系统变量 " 区域,可以看见安装 nvm 时已帮我们新建的
NVM_HOME
和NVM_SYMLINK
变量。 - 配置 Path 系统变量。
- 在 " 系统变量 " 中找到 Path 变量,点击 " 编辑 "。
- 点击 " 新建 ",添加
%NVM_SYMLINK%\node_global
,然后尽量将其 " 上移 "。 - 最后一路点击 " 确定 " 进行保存配置。
镜像源配置
我们可以使用 npm get registry
命令来查看当前 npm 所使用的镜像源,该命令会返回当前配置的 npm 镜像源 URL。
由于某些原因,如果你发现镜像源访问速度较慢,或者需要切换到其他源,可以通过 npm config set registry xxx
命令来修改 npm 镜像源,如下所示:
# 使用淘宝镜像
npm config set registry https://registry.npmmirror.com/
# 使用华为云镜像
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
nrm(npm registry manager)是 npm 的镜像源管理工具,使用它可以快速切换 npm 镜像源。
- 首先,使用
npm install nrm -g
命令全局安装 nrm,安装完成之后,可以使用nrm -v
命令查看是否安装成功,如下所示: - 使用
nrm ls
命令查看所有支持的镜像源列表以及当前正在使用的镜像源,如下所示: - 使用
nrm use xxx
命令可以选择需要切换的镜像源,如切换到华为镜像源,切换成功后会提示 "The registry has been changed to 'xxx'"。 - 使用
nrm test
命令可以测试镜像源速度。