问题: 项目需要的版本号: node v14.17.2 npm -v 6.14.13 本机带的node版本号: node v16.14.2 npm 8.5.0 有什么办法能把这两个都管理起来,用到哪个切换到哪个么?
解决方案,安装nvm管理
一. 卸载原有nodejs
-
清空缓存:
npm cache clean --force验证是否清空:
npm cache verify
typescript
C:\WINDOWS\system32>npm cache verify
Cache verified and compressed (D:\soft\nodejs\node_cache\_cacache)
Content verified: 0 (0 bytes)
Index entries: 0
Finished in 0.031s
执行后如果输出类似 Cache verified and compressed (0 bytes) 或 Cache is clean 之类的内容,就说明缓存已经完全清空了。
- 控制面板删除nodejs
- 系统设置删除关于nodejs的配置
- 删除全局 node_global node_cache文件夹
二. 安装nvm
- 安装包地址
https://github.com/coreybutler/nvm-windows/releases
各种下一步,将nvm和nodejs的安装路径记录下来,后续有用
检查: nvm list available
typescript
C:\WINDOWS\system32>nvm list available
| CURRENT | LTS | OLD STABLE | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
| 25.4.0 | 24.13.0 | 0.12.18 | 0.11.16 |
| 25.3.0 | 24.12.0 | 0.12.17 | 0.11.15 |
......
| 24.0.0 | 22.11.0 | 0.10.48 | 0.9.10 |
This is a partial list. For a complete list, visit https://nodejs.org/en/download/releases
说明安装成功
注意:这里 nvm list available 输出的所有版本号,全部都是 Node.js 的版本号,不是 nvm-windows 本身的版本,也不是 npm 的版本。
三. 安装自己需要的nodejs版本
例如我这里要下载 node v14.17.2
这里两个方案,全部看完后,请自行选择
方案一: 直接用超管打开cmd 输入
nvm install 14.17.2
这里我用不了
原因一:
一直在下载,下载不下来nodejs
解决方案: 打开nvm安装目录,找到settings.txt,将下列两个镜像追加到文件中
typescript
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
解决了下载问题
但还有原因二:
typescript
C:\WINDOWS\system32>nvm install 14.17.2
Downloading node.js version 14.17.2 (64-bit)...
Complete
Downloading npm...
Creating C:\WINDOWS\TEMP\nvm-install-2229972276\temp
.
Downloading npm version 6.14.13... Complete
Installing npm v6.14.13...
error installing 14.17.2: open C:\WINDOWS\TEMP\nvm-npm-2518182551\npm-v6.14.13.zip: The system cannot find the file specified.
核心原因还是 系统临时目录(C:\WINDOWS\TEMP)的权限 / 访问问题
所以这里我选方案二
方案二: 直接手动下载nodejs.zip文件,放到nvm安装文件夹中
- 下载对应包:
地址: https://npmmirror.com/mirrors/node/v14.17.2/node-v14.17.2-win-x64.zip
- 将zip包解压到 nvm 目录
在nvm 安装目录下新建文件夹,命名为nodejs版本号,例如我的叫 v14.17.2(必须严格这个名字,和版本号对应)
- 文件对应
把下载的 node-v14.17.2-win-x64.zip 解压到 nvm 安装目录下的 v14.17.2文件夹里(解压后,v14.17.2 文件夹里能看到 node.exe、npm.cmd 等文件)。
验证: 以管理员身份打开 cmd,执行 nvm list
typescript
C:\WINDOWS\system32>nvm list
14.17.2
我这里说明已经将nodejs归在nvm控制下,需要更多的版本就用此方法一个个添加
为什么这个方法能解决?
手动安装跳过了 nvm 「下载 npm → 存到系统临时目录 → 解压」的环节,直接把完整的 Node.js(自带 npm)放到 nvm 管理目录里,nvm 只需要做「版本切换」的核心工作,完全避开了临时目录的权限问题。
四. 版本切换
我这里需要切换到 14.17.2 版本: nvm use 14.17.2
typescript
C:\WINDOWS\system32>nvm use 14.17.2
Now using node v14.17.2 (64-bit)
验证是否成功 node -v
typescript
C:\WINDOWS\system32>node -v
v14.17.2
C:\WINDOWS\system32>npm -v
6.14.13