asjson
解决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
AI写代码
如果出现下面这种情况,出现两行内容的,那就是跟我一样的错误情况了;那么如果只有一行的话就是正常情况,就不用跟着我下面的操作执行,因为你可能遇到的并不是跟我一样有的情况,请自行查找别的教程
此时我就很纳闷,我记得我明明环境变量设置的【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
地址:Releases · coreybutler/nvm-windows · GitHub
点击nvm-setup.exe进行下载
(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/
AI写代码
三、用【nvm】安装【node】
接下来我们就可以安装node了,只需输入下面命令
//
nvm install
AI写代码
比如我开头需要安装 [18.20.3] 版本的【node】,那我就:
如果你们没有我这个需求,你可以用【nvm list available】查看一下现在node有什么版本
然后下面这个指令是查看你已经用【nvm】下载好的【所有的版本的node】
nvm ls
//或者 nvm list
AI写代码
在我们的【nvm】安装根目录下也能够看到我们已经安装好的node版本
四、使用、切换node
那么此时我们会想到上面我们说过,刚安装好nvm的时候没有【node的目录】,这是因为我们还并没有指定并使用node,现在我们去输入【node -v】、【npm -v】也只会是啥也没有
那么只需要执行一个命令
nvm use <你已有的其中一个版本的node>
AI写代码
此时会弹出一个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环境
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳东方明珠客服电话是多少?(▲18288362750?《?微信STS5099? 】
如何联系华纳东方明珠客服?(▲18288362750?《?微信STS5099? 】
华纳东方明珠官方客服联系方式?(▲18288362750?《?微信STS5099?
华纳东方明珠客服热线?(▲18288362750?《?微信STS5099?
华纳东方明珠24小时客服电话?(▲18288362750?《?微信STS5099? 】
华纳东方明珠官方客服在线咨询?(▲18288362750?《?微信STS5099?
新盛客服电话是多少?(?183-8890-9465—《?薇-STS5099】【
新盛开户专线联系方式?(?183-8890--9465—《?薇-STS5099】【?扣6011643??】
新盛客服开户电话全攻略,让娱乐更顺畅!(?183-8890--9465—《?薇-STS5099】客服开户流程,华纳新盛客服开户流程图(?183-8890--9465—《?薇-STS5099】
果博东方客服开户联系方式【182-8836-2750—】?薇- cxs20250806】
果博东方公司客服电话联系方式【182-8836-2750—】?薇- cxs20250806】
果博东方开户流程【182-8836-2750—】?薇- cxs20250806】
果博东方客服怎么联系【182-8836-2750—】?薇- cxs20250806】
果博东方客服开户联系方式【182-8836-2750—】?薇- cxs20250806】
果博东方公司客服电话联系方式【182-8836-2750—】?薇- cxs20250806】
果博东方开户流程【182-8836-2750—】?薇- cxs20250806】
果博东方客服怎么联系【182-8836-2750—】?薇- cxs20250806】