解决nvm切换node版本不成功的问题(包含全网最正确最齐全的nvm安装配置,全网最细最有用的一篇)

废话前言:

因为现在已经接近实习尾声,我已经没有什么事可干了,于是我就从java后端和python转回前端,开始准备写写前端项目

 但是当我重新打开那尘封已久的后端项目的时候,有些是之前GitHub拉去下来的vue项目,那学过前端的都知道,首先要干的事就是1、【npm init】,然后 2、【npm install】了,结果我一输入命令,你冯了个臭福的,老子最他妈比烦的事又来了,来一次老子火一次 ——> 该死的傻逼前端配置问题

一、出现的问题情况

AI插件给出的解释是这个项目依赖 [18.20.3] 这个版本的Node,但我的电脑的Node版本是 [16.19.1]

那么此时我还不慌,因为我很早之前就因为切换Node这个问题安装了【nvm】【nvm】是一个帮忙管理【Node】的工具,它可以允许安装多个版本的【Node】,并轻松切换不同版本的【Node】为当前电脑全局使用的版本。

那么老子就自信满满地输入【nvm ls】检查我已经安装的Node版本,哎嗨刚好有 [18.20.3] 这个版本,那么就很简单,直接【nvm use 18.20.3】就可以切换成这个版本了,结果电脑连着闪了两次系统提示框(闪一次是切换成功),我就意识到大事不妙,用【node -v】一看,我操你冯了臭福啊!!!操你冯了臭福啊!!!还是尼玛福的[16.19.1]版本!!!最怕的事情来了!!!!!

此时我上网查了一下,简单总结说一下原因就是:

我电脑有2个【Node的路径】,我自己在环境变量设置了我指定的【Node的路径】,但是【nvm】不知道为什么还有一个【Node的路径】,默认是【C:\Program Files\nodejs】

那么如果你的电脑也出现解决nvm切换node版本不成功的问题,那么就可以【Win + R】用cmd打开终端执行这个命令

where node

如果出现下面这种情况,出现两行内容的,那就是跟我一样的错误情况了;那么如果只有一行的话就是正常情况,就不用跟着我下面的操作执行,因为你可能遇到的并不是跟我一样有的情况,请自行查找别的教程

 此时我就很纳闷,我记得我明明环境变量设置的【Node的路径】是【E:\nodejs】啊,然后我在【nvm】的根目录的【setting】配置文件里写的路径也是【E:\nodejs】,虽然【nvm】的【安装Node】的路径默认是【C:\Program Files\nodejs】,可是我已经换成我指定的【E:\nodejs】路径了啊.......

后面我是用全身解数,用尽办法,都没有办法把它改回我的指定的【Node安装路径】,哪怕我删除了默认路径【C:\Program Files\nodejs】,只要我一执行【nvm install 18.20.3】或【nvm use 18.20.3】,马上就会自动又出现这个傻逼默认路径【C:\Program Files\nodejs】,没完没了!!!!我操他妈!!

二、如何解决

那么看完上面内容,如果你的情况跟我一样是不知道为什么2个【Node的路径】,那么接下来请老老实实按我的步骤,包没错

根据我学计算机这么久的经验,永远只有一种解决方案最稳妥最快,那就是全部卸载重新安装。不要害怕你有很多项目已经绑定了node,到时候下载回来就得了很快的,我自己就是,首要的问题是【安装好nvm】!!!

1、卸载nvm

打开控制面板,找到软件卸载

然后去【系统】——>【高级系统设置】——>【环境变量】,懂得都懂的,然后把系统变量里【NVM HOME】和【NVM SYMLINK】删了,还有【path】里的【%NVM HOME%】和【%NVM SYMLINK%】,也就是你曾经安装【nvm】的时候配置的【nvm安装路径】跟【nvm安装node的路径】

这里就不截图演示了

2、卸载所有跟node有关的任何东西

首先还是像刚刚那样,去控制面板的软件卸载那里,找到node卸载(当然一般情况这是单独安装node才会这样,一般用【nvm】管理node的话,卸载nvm就是卸载node了)

接下来,重点检查这几个地方的这些文件,有的话全部删掉!

  • C:\Program Files (x86)\Nodejs
  • C:\Program Files\Nodejs
  • C:\User\用户名 目录下的 【.npmrc】文件(.node_repl_history如果存在也删除,没有就忽略)
  • C:\Users\用户名\AppData\Roaming\npm
  • C:\Users\用户名\AppData\Roaming\npm-cache
  • C:\Users\用户名\AppData\Local\npm-cache
  • 你之前用nvm时,指定的自定义的node安装路径

最后输入【nvm -v】【npm -v】【node -v】,如果都显示下面这样就卸载干净了

3、重新安装【nvm】

这里就是正式安装【nvm】的步骤了,如果只是为了安装【nvm】而没有我前面遇到的问题的同志,请先将上面【卸载旧的遗留的所有node有关文件】做完,然后回来,从这里开始认认真真按照我的每一步做

(这里我懒得截图,前两个截图借鉴博主:步步生花@苏殿主 的文章的截图)

(1)下载NVM

在这里插入图片描述

(2)双击下载好的文件,开始安装

在这里插入图片描述

这里我还是像以前一样,在别的硬盘创建了一个叫 “NVM” 的文件夹,里面专门用来存放【nvm的安装目录】和【node的目录】,这是我的个人习惯怕c盘内存不够,当然你们用默认的安装路径也没事,看个人习惯。

安装完毕我们就可以在我们指定的安装目录下看到【nvm】这个目录了,也就是【nvm的安装目录

但是这里注意!!!我们刚刚设置的【node的目录】(比如上图的E:\NVM\nodejs)是一个暂时不存在的目录,即便你事先已经创建好了这个目录,在nvm安装完之后你也会发现不见了,这时不要慌,这是正常的

这个刚刚设置的【node的目录】只会在你确定使用了某个版本的node之后,才会自动创建一个出来。(这就是前面我为什么一用【nvm use 18.20.3】就马上在默认路径多出一个nodejs文件夹)

再去检查我们的【环境变量】的【系统变量】和【path变量】,确保【系统变量】里有【NVM_HOME】和【NVM_SYMLINK】,以及【path变量】里有【%NVM_HOME%】和【%NVM_SYMLINK%】

一般情况下,nvm安装时会自动帮添加好,但是还是要再三确认无误!!!

然后用终端执行【nvm -v】检查安装成功了没有,有版本号就对了

(3)配置nvm目录下的setting配置文件

nvm的安装目录下有个【setting】文件,是用来配置nvm安装node、npm...这些工具的路径、下载的镜像网址这些配置的,我们点进去编辑

然后粘贴下面的内容进去,【Ctrl + S】保存,因为npm、yarn这些都是国外的,连外网下载慢,要换成淘宝的镜像网址

# 配置node镜像:
node_mirror: https://npmmirror.com/mirrors/node/

# 配置npm镜像:
npm_mirror: https://npmmirror.com/mirrors/npm/

三、用【nvm】安装【node】

接下来我们就可以安装node了,只需输入下面命令

//<version>是指安装指定版本的 Node.js
nvm install <version>

比如我开头需要安装 [18.20.3] 版本的【node】,那我就:

如果你们没有我这个需求,你可以用【nvm list available】查看一下现在node有什么版本

然后下面这个指令是查看你已经用【nvm】下载好的【所有的版本的node】

nvm ls
//或者 nvm list

在我们的【nvm】安装根目录下也能够看到我们已经安装好的node版本

四、使用、切换node

那么此时我们会想到上面我们说过,刚安装好nvm的时候没有【node的目录】,这是因为我们还并没有指定并使用node,现在我们去输入【node -v】、【npm -v】也只会是啥也没有

那么只需要执行一个命令

nvm use <你已有的其中一个版本的node>

此时会弹出一个window提示框,选【是】就行

此时你再输入【node -v】、【npm -v】试试

爽!爽死了!!!牛逼!!!!!还有,我们设置的【node的目录】出现了!!更爽了!!!

那么以后当我们的项目需要某个特定版本的node的时候,我们就可以直接直接用【nvm use <node版本>】 直接切换了。

五、解释这一切一切的原理

那么如果你只是一个想快速用【nvm】的看客,那么就不用看这里。但是应该会有很多人回像我一样一直困惑这么几个东西【node】、【nvm】、【npm】、【cnpm】、【yarn】,那么我就用简短的话解释清楚。

1、Node.js

首先解释node,为什么我们学前端的时候从来就没有说学什么鬼Node,但是搞个死人前端每次都要用到这个b玩意?因为它是一个【运行环境

就跟java的jdk、微信小程序的微信环境...等等一样,他们都需要在特定的环境才能运行。那有人会疑问,前端的代码的运行环境不是浏览器吗,这个说法不完全对。

在以前,js代码只能运行在浏览器中。所以通常前端使用js写,后端则要用另一种语言写,比如Java、PHP、Ruby等。而【Node.js】出现之后,js就可以脱离浏览器运行了,可以用来写后端服务代码。同时,在【Node.js】出现之后,大批前端程序员才使用 js 开发出了一些我们熟知的前端框架(如前端开发脚手架vue-cli、静态网站生成器hexo等等)

简单来说:【Node.js】就是让前端的js允许在浏览器使用的运行环境。但是注意:【Node.js】不是前端!!它是轻量级的后端开发语言,它服务于前端、也服务于后端,他对于前端就只是一个依赖的运行环境后端才是用它来写代码

2、npm

npm是Nodejs package manager的缩写,顾名思义,是【Node.js包管理器】。

他就是一个帮助我们下载安装各种各样工具的管理器,前端开发的肯定不止一次见到【npm install xxx】这样的命令,前端不管是第三方库、依赖包都可以使用它来直接在项目中下载并安装;另外它也是【Node.js】的帮手,比如我们用npm才能运行启动vue这些项目

前面为什么我们在没有指定并使用node的时候,输入【npm -v】就啥也没有;而当我们正式使用了node,才会出现npm的版本号。因为它是【Node.js】的 “小弟”,它随着【Node.js】被安装,并不能单独安装。

3、cnpm

cnpm是淘宝做的npm国内镜像,淘宝镜像与官方同步频率目前为10分钟一次以保证尽量与官方仓库同步。

cnpm安装命令npm install cnpm -g --registry=https://registry.npm.taobao.org

cnpm相比于npm,除了使用时命令名多了个c,其余都是一样的

使用cnpm不如使用npm修改为淘宝镜像源,因为cnpm是只读的,只能用来安装npm包,不能进行publish、adduser等操作

4、yarn

yarn与npm一样,都是js包管理器,都适用于nodejs。不一样的是,yarn与npm的架构和包管理方式方式不同

随着 Node 社区的越来越大,越来越多的人将 Node 应用到企业级项目,这让 npm 暴露出很多问题。于是yarn诞生了,它解决了npm的缺点,还提供了其它更好的体验,很多人转而用yarn而非npm (其实yarn还是需要用npm安装的npm install -g yarn)

在受到 yarn 的冲击之后,npm 官方也决定改进这几个缺点,于是发布了npm5 版本。npm6更是加入了缓存,又进一步提升了安装速度。慢慢的npm重新回到原本的地位,也就没有必要使用yarn这种第三方的工具了(毕竟npm是nodejs内置的。

所以我们很多Vue的项目也会用【yarn serve】来启动项目,也会用yarn来下载安装工具包,这个要根据个人喜好以及公司情况来。

5、nvm

这个我就不用怎么解释了吧,上面讲这么详细了,如果不用nvm,我们以前前端要运行vue,还得单独下载安装node,然后好不容易下载了最新版的node,过段时间接了别人的vue项目想打开看看,还特么得用旧版本的node,还得卸载了之前我们手动下载安装的node,而且环境变量啥的这些自己还容易配错。

那么nvm就是专门用来管理node的,你可以用它随心的安装node,并切换各个版本node作为当前电脑运行的node环境

更多详细细节可以参考这篇文章,讲得很通透:node、npm、cnpm、yarn介绍和使用_node yarn-CSDN博客

  • 19
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值