NVM安装以及可能的坑

前情提要:之前一直直接装的固定版本的node,最近不同项目之间需要切换不同版本的node,频繁卸载重装太麻烦了,所以安装NVM管理不同版本的node。

目录

NVM下载

NVM安装

NVM环境变量

安装Node

配置node环境变量

npm安装包

一些常用的命令

问题

1.通过nvm无法正常安装node

2.无法切换使用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 的可执行文件链接到系统路径中,以便在命令行中直接使用 nodenpm 命令。(划重点,这是个链接路径,后续有坑)

安装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 的符号链接路径(一个快捷键),如果有重名的真是文件夹,会导致生成失败


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

文件目录情况

环境变量

相关推荐
于慨14 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz14 小时前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
从前慢丶14 小时前
前端交互规范(Web 端)
前端
CHU72903514 小时前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
GISer_Jing14 小时前
Page-agent MCP结构
前端·人工智能
王霸天14 小时前
💥别再抄网上的Scale缩放代码了!50行源码教你写一个永不翻车的大屏适配
前端·vue.js·数据可视化
小领航14 小时前
用 Three.js + Vue 3 打造炫酷的 3D 行政地图可视化组件
前端·github
@大迁世界14 小时前
2026年React大洗牌:React Hooks 将迎来重大升级
前端·javascript·react.js·前端框架·ecmascript
PieroPc14 小时前
一个功能强大的 Web 端标签设计和打印工具,支持服务器端直接打印到局域网打印机。Fastapi + html
前端·html·fastapi
悟空瞎说15 小时前
深入 Vue3 响应式:为什么有的要加.value,有的不用?从设计到源码彻底讲透
前端·vue.js