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


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

文件目录情况

环境变量

相关推荐
幽络源小助理1 小时前
Typecho大前端新闻博客主题源码下载:资讯门户风格模板安装教程 | 幽络源
前端
简离2 小时前
Git 一次性清理已跟踪但应忽略文件
前端·git
清水寺小和尚2 小时前
# 告别魔法:带你彻底搞透 Agent Loop、Skills、Teams 与 MCP 协议
前端
小蜜蜂dry2 小时前
nestjs学习 - 管道(pipe)
前端·nestjs
梦鱼2 小时前
🖥️ 告别 Electron 托盘图标模糊:一套精准的 PNG 生成方案
前端·electron
张元清2 小时前
React Hooks 性能优化:如何避免不必要的重新渲染
前端·javascript·面试
不甜情歌2 小时前
JavaScript this绑定规则:告别踩坑指南!
前端·javascript
小J听不清2 小时前
CSS 三种引入方式全解析:行内 / 内部 / 外部样式表(附优先级规则)
前端·javascript·css·html·css3
aircrushin2 小时前
端到端AI决策架构如何重塑实时协作体验?
前端·javascript·后端