前情提要:之前一直直接装的固定版本的node,最近不同项目之间需要切换不同版本的node,频繁卸载重装太麻烦了,所以安装NVM管理不同版本的node。
目录
NVM下载
下载地址:https://github.com/coreybutler/nvm-windows/releases
NVM安装



NVM环境变量
1.安装成功后,验证是否安装成功
bash
nvm version

2.查看环境变量
安装成功后,会自动生成两个环境变量NVM_HOME和NVM_SYMLINK,分别是安装时选择的两个安装路径

NVM_HOME:NVM 的安装目录路径
NVM_SYMLINK:用于指定 Node.js 的符号链接路径。这个变量通常用于将 Node.js 的可执行文件链接到系统路径中,以便在命令行中直接使用 node 和 npm 命令。(划重点,这是个链接路径,后续有坑)
安装Node
1.配置镜像
打开nvm的安装目录下的settings.txt文件,加上镜像配置
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
2.安装node,以我这边安装16.20.2为例
bash
# nvm install <version>
nvm install 16.20.2
3.验证是否安装成功
bash
# 查看已安装的所有node版本
nvm list
# 缩写 nvm ls
# 使用某个node版本
# nvm use <version>
nvm use 16.20.2
安装并使用某个版本后,正常会看到如下效果(如果提示**No installations recognized,表示没安装成功**)

配置node环境变量
1.查看默认的node配置情况
bash
# 打印出node配置信息
node config ls -l
# 打开node配置文件.npmrc
node config edit
两种方式都可以查看,推荐第二种,后续修改也能直接在配置文件中修改;

主要关注下registry、prefix、python几个配置项:
registry:用于指定 npm 包的下载源。默认情况下,npm 使用官方源
prefix:用于指定 Node.js 安装全局包的路径。通过设置此变量,你可以将全局安装的 npm 包安装到自定义目录中,避免与系统默认路径冲突。
python:Node.js 在编译原生模块时需要 Python 环境。如果系统中未正确配置 Python,可能会导致 node-gyp 编译失败(刚开始不需要安装配置,需要时再安装配置)
2.配置npm全局安装环境变量
说明:安装 Node.js 时会自动安装 npm,可以通过node -v和npm -v分别查看安装的版本;
通过前面,我们已经知道prefix指定的就是 Node.js 安装全局包的路径,我们还需要将这个路径地址配置到环境变量中。
a)在系统变量(或者用户变量)下添加NPM_G

b)在Path中添加NPM_G路径变量

特别说明:
-NPM_G和prefix的路径可以用默认的,也可以自己重新建一个文件夹专门存放全局包,重点是要确保两个地址是一样的;
-我一般是新建个文件夹node_global,方便后续直观看到全局安装了哪些包;

npm安装包
bash
# 全局安装包---放在全局包目录下
npm install <包名> -g
# 局部安装包----放在当前命令执行目录下
npm install <包名>
一些常用的命令
nvm常用命令
bash
nvm list # 查看已安装的node版本
nvm list available # 查看可安装的node版本
nvm install <version> # 安装指定版本的node
nvm uninstall <version> # 卸载指定版本的node
nvm use <version> # 切换到指定版本的node
nvm current # 查看当前使用的node版本
nvm node_mirror <url> # 设置node镜像源
nvm arch # 显示node是运行在 32 位还是 64 位
nvm on # 开启nvm管理
nvm off # 关闭nvm管理
node常用命令
bash
npm config [ls|list|set|get] [name] [value]
npm config edit
npm init [--yes|-y]
npm search [name]
npm info [name]
npm install [--global|-g] [name]
npm uninstall [--global|-g] [name]
npm list [--global|-g]
npm outdated [--global|-g]
npm update [--global|-g] [name]
npm run [task]
npm cache [clean]
更多命令见:https://docs.npmjs.com/
如果一切顺利,到这儿就可以不用往下看了,下面是一些安装过程中可能遇到的问题(坑)
问题
1.通过nvm无法正常安装node
问题描述:通过nvm执行命令nvm install <version>安装node,提示安装完成,但是运行nvm ls查看显示并未安装上
这种情况可能是因为nvm的node安装镜像地址,出现网络不稳定等各种因素;
解决方案:手动安装node
a)通过https://registry.npmmirror.com/binary.html?path=node/,直接访问镜像地址,手动下载node包,选择对应版本,对应系统,对应系统位数的压缩包,例如:node-v16.20.2-win-x64.zip(windows系统64位的16.20.2版本的node包)

b)下载后 ==> 解压文件 ==> 并将解压后的文件放在nvm安装目录下 ==> 文件名称换成v+版本号


c)这个时候再去执行nvm ls,正常能看到安装的node版本,选择当前要使用的版本即可
2.无法切换使用node版本
问题描述:已经安装了node,执行nvm use <version>指定当前使用的node版本是出错。
这种情况需要检查下前面NVM_SYMLINK中指定的路径,其中nodejs,是不是一个真实存在的文件夹,如果是的话要删掉,nodejs是后续要生成的Node.js 的符号链接路径(一个快捷键),如果有重名的真是文件夹,会导致生成失败

最后附上我这边正常安装后的文件目录及环境变量情况
文件目录情况

环境变量
