一、nvm 是什么
nvm 全名 node.js version management,是一个 nodejs 的版本管理工具。通过它可以安装和切换不同版本的 nodejs,主要解决 node 各种版本存在不兼容现象。
在工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的 NodeJS 运行环境,这种情况下,对于维护多个版本的 node 将会是一件非常麻烦的事情。nvm 就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换。
二、下载nvm
可以下载最新nvm版本,本次下载安装的是windows版本。git 下载地址:https://github.com/coreybutler/nvm-windows/releases,打开网址我们可以看到以下安装包:
选择安装版:下载地址中,nvm-noinstall.zip
是免安装版,nvm-setup.zip
是安装版。安装版可以自动设置环境变量。
这里有一篇文章,讲解了具体如何安装或配置安装版或免安装版,可以学习下:《nvm安装踩坑过程 - https://blog.csdn.net/zoujiawei6/article/details/85322170》
1、需要注意的是:安装 nvm 路径最好不要出现中文和空格
2、镜像加速
下载后按照默认配置一步步安装,由于国外的镜像源下载慢,所以可以打开 nvm 的安装位置,打开 nvmsettings.txt 添加:
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
三、安装、管理 node 常用命令
nvm off // 禁用node.js版本管理(不卸载任何东西)
nvm on // 启用node.js版本管理
nvm install <version> // 安装node.js的命名 version是版本号 例如:nvm install 8.12.0
nvm uninstall <version> // 卸载node.js是的命令,卸载指定版本的nodejs,当安装失败时卸载使用
nvm ls // 显示所有安装的node.js版本
nvm list available // 显示可以安装的所有node.js的版本
nvm use <version> // 切换到使用指定的nodejs版本
nvm v // 显示nvm版本
nvm install stable // 安装最新稳定版
其他命令提示:
nvm arch :显示node是运行在32位还是64位。
nvm install [arch] :安装node, version是特定版本也可以是最新稳定版本latest。可选参数arch指定安装32位还是64位版本,默认是系统位数。可以添加–insecure绕过远程服务器的SSL。
nvm proxy [url] :设置下载代理。不加可选参数url,显示当前代理。将url设置为none则移除代理。
nvm node_mirror [url] :设置node镜像。默认是https://nodejs.org/dist/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。
nvm use [version] [arch] :使用制定版本node。可指定32/64位。
nvm root [path] :设置存储不同版本node的目录。如果未设置,默认使用当前目录。
四、遇到问题解决
1、windows 上安装 nvm 后选择 node 版本出现 exit status 1...
问题:nvm install x.x.x 可以安装成功,但无法切换和使用,报错 exit status 1
原因:把 nvm 安装到了有空格的路径上(D:Program Files),导致切换失败
解决:把 nvm 卸载重装到没有空格的路径上(例如:D: vm),即可解决问题
2、nvm 在 CMD 中不生效
报错:nvm : 无法将 “nvm” 项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
意思就是 nvm 还不是个命令,说明没有配置成功。
原因:当环境变量没配正确时(使用免安装版时需要配置环境变量),重启也不会生效。在确保环境变量配置正确后,重启 cmd 控制台后会生效。
我用的安装版,我这里使用“以管理员身份运行” CMD 后就可以生效,但是在之前我先点了一下 nvm 应用让其运行(具体原因不清楚)
3、npm Download failed
有时候安装 node 安装成功之后,会去安装 npm 有时候就会报错 npm 拒绝啥的,具体报错没有记录
解决:使用镜像加速(把镜像加速的那2行加入,重新开 cmd 安装即可)
4、node 版本安装成功,但是使用时还是之前的版本
就像这样,我之前安装过node版本 10.15.0,没有卸载,直接安装的 nvm,并用 nvm 安装了 14.18.1 的 node。如下切换成 14.18.1 版本也正常,但是查看 node -v 却还是之前的版本。
解决:在安装 NVM for Windows 之前,您需要卸载任何现有版本的 node.js,还需要删除任何现有nodejs安装目录。以下是官方原文:
Please note, you need to uninstall any existing versions of node.js before installing NVM for Windows.
Also delete any existing nodejs installation directories.
所以我卸载了 nvm,卸载了 nodejs,然后重新安装 nvm,再进行相关操作,就可以成功切换 node 版本了。