博主,之前安装nodejs,并没有通过nvm来控制。后面发现nvm很好用。就直接安装nvm使用。但没有把之前安装的nodejs版本删掉。就导致出现了很多很多的bug。找原因找太久。就想发文记入一下。

    问题一: nvm中切换不了nodejs版本。其实一开始安装nvm时是能切换的。后面不知道为啥不行。

     原因,应该是系统环境变量配置处,定死了nodejs 的版本。nvm中怎么切换都是不行的。

解决办法:更改nodejs的环境变量配置。把nvm的配置上去。

问题二:nodejs版本切换了,升到高级的nodejs版本,但npm版本没有改变。因为node.js和npm的版本要相互对应,不然用不了。所以打算自己升级npm

在使用node.js时发现的问题,npm版本版本过低,升级报错

打算自己通过命令npm i -g npm@latest升级npm不行报错

npm ERR! code EEXIST
npm ERR! path C:\ProgramFiles\nodejs\npm.cmd
npm ERR!Refusing to delete C:\ProgramFiles\nodejs\npm.cmd:is outside C:\ProgramFiles\nodejs\node_modules\npm and not a link
npm ERR!File exists: C:\ProgramFiles\nodejs\npm.cmd
npm ERR!Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.
npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\YogaSlim7\AppData\Roaming\npm-cache\_logs\2022-09-28T06_18_24_254Z-debug.log

在网上搜索了各种方法。都不行

比如

把 C:\Program Files\nodejs 目录下的

npm.cmd 重命名 npmm.cmd

npm 重命名 npmm

npx 重命名 npxx

npx.cmd 重命名 npxx.cmd

接着执行 npmm i -g npm@latest

还有各种方法。基本都不行。

就想到为什么nvm改变版本,npm直接改变版本呢,我打开nvm文件夹也是有npm的。

发现有可能是之前nodejs没有删除。

找到打开这几个地方将文件删除

  • C:\Program Files (x86)\Nodejs

  • C:\Program Files\Nodejs

  • C:\Users\{User}\AppData\Roaming\npm(或%appdata%\npm)

  • C:\Users\{User}\AppData\Roaming\npm-cache(或%appdata%\npm-cache)

再检查一下%PATH%环境变量以确保没有引用Nodejs或npm存在后

重新安装nvm配置环境变量。

再次切换nodejs,npm也会自动切换。不用再自己升级npm。

总结,最大的问题原因是我一开始安装好的node.js,并没有被nvm管辖到。但一直占据着环境变量。导致nvm切换不正常。出现的问题。谨记安装nvm前一定要把nodejs删除干净!!!

通过nvm控制nodejs版本确实好用这里挂个官网地址

官方下载地址:https://github.com/coreybutler/nvm-windows/releases