使用nvm管理node版本(详细教程和报错解决方案)

    • 一、下载NVM
    • 二、选择NVM安装路径
    • 三、然后是选择node的安装位置
    • 四、查询版本号
    • 五、配置下载镜像
    • 六、使用NVM
    • 七、报错解决

nvm是一个node版本管理工具,通过它可以安装多种node版本并且可以快速、简单的切换node版本。

一、下载NVM

官方下载地址:https://github.com/coreybutler/nvm-windows/releases
下载成功后直接打开nvm-setup.exe文件进行安装

二、选择NVM安装路径

同意协议后选择nvm安装路径,默认安装位置就好,不要自定义,避免后续忘记存放位置

三、然后是选择node的安装位置

也是默认安装位置就好,不要自定义,避免后续忘记存放位置

然后就是下一步->安装

如果安装的时候有如下提示,就表示是你之前安装过nodejs并且之前的还在,问你是否要将之前的添加到nvm的版本控制中去,选择 是 就好

安装完之后,会发现环境变量自动就配置好了。这里简单提一嘴,为什么安装一些软件都要求配置环境变量git也是,环境变量起到的作用是可以在任意文件夹或者文件路径下,运行相关的命令。

例如NVM命令,假如不配置环境变量,可能我只能在nvm安装路径下使用命令。

四、查询版本号

打开控制台,输入nvm -v查询版本号,能查出来就说明安装成功了

五、配置下载镜像

找到nvm安装路径(默认路径是C:\Users\Administrator\AppData\Roaming\nvm),配置nvm的setting.txt,如果不需要此配置可以跳过。
找到setting.txt配置文件
添加或修改node_mirror、npm_mirror如下

node_mirror: https://npmmirror.com/mirrors/node/npm_mirror: https://npmmirror.com/mirrors/npm/

这是新的镜像地址
中国镜像站早就在21年的时候就说 npm.taobao.org 和 registry.npm.taobao.org 域名将于 2022 年 05 月 31 日零时起停止服务,原文详见知乎【望周知】淘宝 NPM 镜像站喊你切换新域名啦

参考我的配置如下

六、使用NVM

刚安装好nvm发现node和npm是都不能用的,原因是我们只安装了nvm,nvm是帮我们管理node 的,他并不是可以替代node。下面我们进行安装node,安装node只需要输入命令即可安装。
重点:电脑左下角搜索框输入cmd,看到命令提示符,然后鼠标右键,看到“以管理员身份运行”
或者使用快捷组合键:电脑图标的那个按钮+R。但是有些电脑的这个组合键打开的cmd不是以管理员身份运行的,我的电脑就是这样。

先了解下nvm常用命令:

nvm ls // 查看目前已经安装的版本nvm install 10.5.0// 安装指定的版本的nodejsnvm use 10.5.0// 使用指定版本的nodejsnvm list available //显示可下载版本的部分列表nvm uninstall 10.5.0//删除已安装的指定版本,语法与install类似nvm alias //给不同的版本号添加别名nvm unalias //删除已定义的别名`nvm reinstall-packages ` //在当前版本node环境下,重新全局安装指定版本号的npm包nvm current //显示当前的版本

首先使用nvm命令安装node:

查看已经安装的版本:

使用nvm use 版本 命令,切换版本

再次查看nvm版本列表,看到版本前面有个星号就是当前使用的node版本

七、报错解决

有时候nvm install会出现报错情况:Node.js v14.17.4 is not yet released or is not available.

解决方案:直接去node官网的历史版本下载对应的node版本

往下滚动找到你要的版本号,然后点版本号进去。
例如我要的node版本是14.17.4,直接下载node-v14.17.4-win-x64.zip 这个包

下载后解压到nvm目录下(不知道安装目录在哪就去查看环境变量),并改文件名改成v14.17.4(下载了哪个版本号就改为什么版本号名称)

然后重复第五步,以管理员身份打开cmd
输入命令nvm ls 查看nvm已安装列表
输入命令nvm use 14.17.4,看到Now using node v14.17.4 (64-bit)就代表切换成功了,也可以再次输入nvm ls 查看nvm已安装列表,看到版本号前面有个星星就代表切换成功了