Node.js 版本管理全指南:卸载 Node、安装 NVM、常用命令及问题解决

发布于:2025-09-12 ⋅ 阅读:(24) ⋅ 点赞:(0)

一、卸载现有 Node.js(避免版本冲突)

在安装 Node Version Manager (NVM) 前,必须彻底卸载电脑中已有的 Node.js(若从未安装可跳过此步骤),否则可能导致 NVM 管理失效或版本冲突问题。

1. Windows 系统卸载流程

步骤 1:通过控制面板卸载 Node.js

  1. 按下 Win + R 组合键打开运行窗口
  2. 输入 control 并回车打开「控制面板」
  3. 导航至「程序」→「程序和功能」
  4. 在程序列表中找到所有 Node.js 相关条目(可能有多个版本)
  5. 对每个 Node.js 条目右键选择「卸载」,按照向导完成卸载(此过程可能需要1-2分钟)

步骤 2:手动删除残留文件(关键步骤)

Windows 卸载程序通常不会完全清除所有文件,必须手动删除以下路径中的残留:

  • 主安装目录

    • 默认路径:C:\Program Files\nodejs
    • 若安装时自定义过路径,需找到对应的安装文件夹
  • 用户缓存目录

    • npm 全局包目录:C:\Users\[你的用户名]\AppData\Roaming\npm
    • npm 缓存目录:C:\Users\[你的用户名]\AppData\Roaming\npm-cache
  • 环境变量清理

    1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
    2. 在「用户变量」和「系统变量」中检查并删除:
      • 单独的 NODE_PATH 变量
      • Path 变量中所有包含 nodejsnpm 的路径
      • 任何与 Node.js 相关的变量

注意:AppData 是隐藏文件夹,需在文件资源管理器地址栏直接输入路径,或在「查看」选项卡勾选「隐藏的项目」才能看到。

步骤 3:验证卸载是否彻底

  1. 打开新的命令提示符(CMD)(重要:必须新开窗口)
  2. 依次执行以下验证命令:
    node -v  # 应显示"不是内部或外部命令"
    npm -v   # 应显示"不是内部或外部命令"
    where node  # 应无任何输出
    

  3. 若仍有输出,说明卸载不彻底,需重复上述步骤

2. macOS/Linux 系统卸载流程

步骤 1:通过终端彻底删除 Node

打开终端(Terminal),执行以下命令组:

# 1. 删除Node核心文件
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/bin/npm
sudo rm -rf /usr/local/lib/node_modules

# 2. 删除npm缓存(macOS/Linux通用)
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm -rf /tmp/npm-*

# 3. 检查并删除其他可能安装路径
sudo rm -rf /usr/local/include/node
sudo rm -rf /usr/local/share/man/man1/node.1

步骤 2:清理环境变量配置

编辑shell配置文件(根据你使用的shell类型选择):

# 对于bash用户
sudo nano ~/.bash_profile
# 对于zsh用户
sudo nano ~/.zshrc
# 对于fish用户
sudo nano ~/.config/fish/config.fish

在打开的文件中:

  1. 查找并删除所有包含 NODE_PATHnpmnode 的行
  2. 保存更改(Ctrl+O)并退出(Ctrl+X
  3. 使更改立即生效:
    source ~/.bash_profile  # 或对应的配置文件
    

步骤 3:验证卸载

执行以下命令验证:

node -v  # 应无任何输出
npm -v   # 应无任何输出
which node  # 应返回"node not found"

额外清理(针对通过brew安装的情况)

如果曾用Homebrew安装Node:

brew uninstall node --force
brew cleanup
rm -rf $(brew --cache)

二、安装 NVM(Node Version Manager)

系统版本差异说明

NVM(Node Version Manager)分为两个主要版本分支:

  • Windows 版本:nvm-windows(由社区维护)
  • macOS/Linux 版本:官方 nvm

两者在实现机制和安装方式上有显著差异,需要根据操作系统选择对应的安装方法。

2.1 Windows 系统安装 nvm-windows

步骤 1:下载 nvm-windows 安装包

由于官方 NVM 不支持 Windows 系统,Windows 用户需要使用社区维护的替代方案:

  1. 访问 GitHub 仓库:https://github.com/coreybutler/nvm-windows/releases
  2. 下载最新稳定版本(建议选择标有"Latest release"的版本)
  3. 推荐下载文件类型:
    • nvm-setup.exe:包含自动配置的安装程序(推荐新手使用)
    • nvm-noinstall.zip:免安装版(适合高级用户手动配置)

注意:如果系统已安装Node.js,建议先卸载,避免与nvm管理的版本冲突。

步骤 2:运行安装程序

安装过程注意事项:

  1. 双击 nvm-setup.exe 启动安装向导
  2. 同意用户协议(勾选"I accept...")
  3. 设置安装路径:
    • 默认路径:C:\Users\[用户名]\AppData\Roaming\nvm
    • 可修改但建议保持默认(避免权限问题)
  4. 配置Node.js符号链接路径:
    • 默认:C:\Program Files\nodejs
    • 此路径将作为nvm切换版本时的统一入口
  5. 完成安装前建议勾选"Add to PATH"选项

步骤 3:验证安装

安装完成后必须执行以下操作:

  1. 重新打开命令提示符(CMD/PowerShell)
  2. 输入验证命令:
    nvm version
    

    成功示例输出:
    1.1.11
    

  3. 常见问题排查:
    • 如果提示"nvm不是内部命令",请检查是否重启了终端
    • 可运行where nvm确认是否在PATH中

2.2 macOS/Linux 系统安装 nvm

步骤 1:通过终端安装 nvm

推荐使用官方维护的安装脚本:

方法一:使用curl(推荐)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

方法二:使用wget(当curl不可用时)

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

安装过程说明

  • 脚本会自动将nvm克隆到~/.nvm目录
  • 会自动尝试配置shell启动文件(.bashrc/.zshrc等)
  • 可能需要管理员权限(在命令前加sudo

步骤 2:配置环境变量

当自动配置失败时需要手动操作:

  1. 确定使用的shell类型:

    echo $SHELL
    
    • /bin/bash → 编辑.bash_profile.bashrc
    • /bin/zsh → 编辑.zshrc
  2. 使用nano编辑器修改配置文件(以bash为例):

    nano ~/.bash_profile
    
  3. 在文件末尾添加以下内容:

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # 加载nvm
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # 启用自动补全
    
  4. 使配置立即生效:

    source ~/.bash_profile
    

步骤 3:验证安装

输入以下命令验证:

nvm --version

成功示例输出:

0.39.7

额外验证步骤

command -v nvm

应返回:

nvm

提示:如果安装后立即验证失败,尝试关闭并重新打开终端窗口。

三、使用 NVM 安装 Node.js

3.1 查看可安装的 Node 版本

在使用 NVM 安装 Node.js 之前,建议先查看官方提供的可用版本列表,这包含以下几个分类:

  • CURRENT:最新稳定版
  • LTS:长期支持版(推荐生产环境使用)
  • OLD STABLE:旧稳定版
  • OLD UNSTABLE:旧开发版

执行以下命令查看可用版本:

nvm list available

典型输出示例(不同平台输出格式可能略有差异):

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|   20.5.1     |   18.17.1    |   16.20.2    |   17.9.1     |
|   20.5.0     |   18.17.0    |   16.20.1    |   17.9.0     |
|   19.9.0     |   16.20.0    |   14.21.3    |   15.14.0    |

3.2 安装指定版本的 Node

安装 LTS 版本(推荐)

长期支持版(LTS)是最稳定的版本,适合生产环境使用:

nvm install 18.17.1

安装最新版本

如果需要使用最新特性,可以安装当前最新版本:

nvm install 20.5.1

安装特定版本

为兼容旧项目,可能需要安装特定版本:

nvm install 16.20.2

安装过程中:

  1. NVM 会自动下载指定版本的 Node.js 二进制包
  2. 同时安装对应的 npm 版本
  3. 配置必要的环境变量
  4. 在本地缓存安装文件以便快速切换

3.3 切换已安装的 Node 版本

当系统中有多个 Node 版本时,可以随时切换:

# 切换到 18.17.1 版本
nvm use 18.17.1

# 切换到 16.20.2 版本
nvm use 16.20.2

注意:

  • 切换后,当前终端会话会立即生效
  • 新打开的终端会默认使用系统默认版本(可通过 nvm alias default 设置)

3.4 验证安装与切换

切换版本后,建议验证是否成功:

# 验证 Node.js 版本
node -v
# 预期输出示例:v18.17.1

# 验证 npm 版本
npm -v
# 预期输出示例:9.6.7(这是 Node 18 配套的 npm 版本)

# 查看当前使用的 Node 版本路径
which node
# 输出示例:/Users/username/.nvm/versions/node/v18.17.1/bin/node

3.5 其他实用命令

查看已安装版本

nvm ls

设置默认版本

nvm alias default 18.17.1

卸载指定版本

nvm uninstall 16.20.2

四、NVM 常用命令(Windows/macOS/Linux 通用)

命令详解与应用场景

版本管理相关命令

命令 功能说明 示例 应用场景
nvm version 查看 NVM 版本 nvm version 在安装或升级 NVM 时确认当前版本,确保工具正常运作
nvm current 查看当前使用的 Node 版本 nvm current 快速确认当前环境版本,调试时验证环境配置
nvm listnvm ls 查看已安装的 Node 版本(带 * 的为当前使用版本) nvm list 管理多个项目时查看已安装版本,了解当前环境
nvm list installed 查看已安装的 Node 版本 nvm list installed 仅查看本地已安装版本,不显示远程可用版本
nvm list available 查看可安装的 Node 版本 nvm list available 在安装新版本前,查看所有可用的 LTS 和当前版本列表

安装与卸载命令

命令 功能说明 示例 应用场景
nvm install <version> 安装指定版本的 Node nvm install 18.17.1 为新项目安装特定版本,或测试不同版本的兼容性
nvm install [arch] 安装指定版本并可指定平台 nvm install 16.20.2 64 在特定系统架构(32/64位)上安装指定版本
nvm uninstall <version> 卸载指定版本的 Node nvm uninstall 16.20.2 清理不再需要的旧版本,节省磁盘空间

版本切换与配置

命令 功能说明 示例 应用场景
nvm use <version> 切换到指定版本的 Node nvm use 16.20.2 为不同项目切换 Node 版本,测试代码在不同环境的兼容性
nvm use [version] [arch] 切换指定版本和位数 nvm use 18.17.1 64 同时指定版本和系统架构进行切换
nvm alias default <version> 设置默认 Node 版本(重启终端后生效) nvm alias default 18.17.1 设置长期使用的稳定版本,避免每次打开终端都要切换

系统配置命令

命令 功能说明 示例 应用场景
nvm arch 查看当前系统的位数和当前 nodejs 的位数 nvm arch 确认运行环境架构,解决32/64位兼容性问题
nvm on 启用 nodejs 版本控制 nvm on 激活NVM版本管理功能
nvm off 禁用 nodejs 版本控制 nvm off 临时关闭NVM版本管理功能
nvm proxy [url] 查看和设置代理 nvm proxy http://proxy.example.com:8080 在需要代理的网络环境下配置NVM
nvm node_mirror [url] 设置或查看 node 镜像源 nvm node_mirror https://npm.taobao.org/mirrors/node/ 在国内网络环境下使用镜像加速下载
nvm npm_mirror [url] 设置或查看 npm 镜像源 nvm npm_mirror https://npm.taobao.org/mirrors/npm/ 在国内网络环境下使用镜像加速npm安装
nvm root [path] 设置和查看 root 路径 nvm root "C:\nvm" 自定义NVM安装目录,解决权限或磁盘空间问题

进阶使用技巧

  1. 版本号通配符:可以使用部分版本号进行安装,如 nvm install 18 会自动安装最新的 18.x 版本

  2. 版本切换注意事项

    • 切换版本后需要重新安装全局 npm 包
    • 某些项目可能需要删除 node_modules 后重新安装依赖
  3. 多版本运行测试

    nvm run 12.22.12 app.js
    nvm run 14.21.3 app.js
    nvm run 16.20.2 app.js
    

    可以在不切换全局版本的情况下测试代码在不同 Node 版本中的运行情况

  4. Windows 特殊说明

    • 安装路径不要包含空格和中文
    • 需要以管理员身份运行命令提示符执行安装
    • 可能需要手动设置系统环境变量

常见问题解决

  1. 命令不生效:关闭终端重新打开,或执行 source ~/.bashrc(Linux/macOS)

  2. 安装失败:检查网络连接,或尝试使用淘宝镜像:

    NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node nvm install 16
    

  3. 版本切换无效:检查是否在其他终端窗口使用了该版本,关闭所有终端重试

  4. 权限问题(Linux/macOS):在命令前加上 sudo,或修改 NVM 安装目录的权限

五、卸载 NVM

5.1 Windows 系统卸载 nvm-windows 完整流程

步骤 1:通过控制面板标准卸载

  1. 按下 Win + R 组合键打开运行窗口,输入 control 回车打开控制面板
  2. 进入「程序」→「程序和功能」(Windows 10/11 也可通过设置中的"应用"执行)
  3. 在程序列表中找到以下条目(按字母顺序排列):
    • nvm-windows
    • Node.js (如果已通过nvm安装)
  4. 右键点击选择「卸载」,按照向导完成标准卸载流程

注意:如果遇到"卸载程序正在使用"的提示,请关闭所有命令行窗口和IDE工具

步骤 2:彻底清理残留文件

  1. 打开文件资源管理器,依次删除以下目录:
    • 主安装目录(默认路径):
      C:\Users\[你的用户名]\AppData\Roaming\nvm
      

    • Node.js 符号链接目录(如果存在):
      C:\Program Files\nodejs
      

  2. 检查以下位置是否还有残留:
    • C:\Program Files (x86)\nodejs
    • C:\ProgramData\nvm
    • 当前用户文档目录下的 .nvm 文件夹

步骤 3:完整清理环境变量

  1. 按下 Win + S 搜索"环境变量",选择「编辑系统环境变量」
  2. 在「高级」选项卡点击「环境变量」按钮
  3. 在「用户变量」中检查并删除:
    • NVM_HOME
    • NVM_SYMLINK
  4. 在「系统变量」中编辑 PATH 变量,删除以下条目(如果存在):
    • %NVM_HOME%
    • %NVM_SYMLINK%
    • 任何指向 nvm 或 nodejs 的显式路径
  5. 点击「确定」保存所有更改

提示:建议重启计算机确保所有变更生效

5.2 macOS/Linux 系统卸载 nvm 完整流程

步骤 1:彻底删除 nvm 安装文件

  1. 打开终端(Terminal/iTerm2等)
  2. 执行以下命令删除核心文件:
    sudo rm -rf ~/.nvm
    

  3. 对于通过 Homebrew 安装的情况,还需执行:
    brew uninstall nvm
    brew cleanup
    

步骤 2:清理Shell配置文件

  1. 确定你使用的shell类型(执行 echo $SHELL 查看):

    • Bash: ~/.bashrc, ~/.bash_profile
    • Zsh: ~/.zshrc
    • Fish: ~/.config/fish/config.fish
  2. 使用文本编辑器(如nano/vim)打开对应配置文件:

    nano ~/.zshrc  # 以Zsh为例
    

  3. 查找并删除以下内容块:

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
    

  4. 保存文件后使变更生效:

    source ~/.zshrc  # 或对应shell的配置文件
    

步骤 3:验证卸载结果

  1. 完全关闭当前终端窗口

  2. 打开新的终端窗口,执行:

    nvm --version
    

    预期结果应显示:

    zsh: command not found: nvm
    

  3. 检查node是否也被移除:

    node -v
    npm -v
    

    如果这些命令仍有效,说明系统中还存在独立安装的Node.js,需要单独卸载

  4. 最后检查安装目录是否已清空:

    ls -la ~/.nvm  # 应该显示"没有那个文件或目录"
    

六、可能遇到的问题及解决方案

6.1 问题 1:Windows 下执行 nvm use 提示「exit status 1: Access is denied」

详细原因分析: 该问题通常发生在 Windows 系统中,当 NVM 尝试创建或修改 Node.js 的符号链接时,由于用户权限不足导致操作被拒绝。特别是在 Windows 10/11 系统中,对系统目录的修改需要管理员权限。

完整解决方案

  1. 关闭当前的命令提示符窗口
  2. 在 Windows 搜索栏中输入「cmd」或「PowerShell」
  3. 右键点击搜索结果中的「命令提示符」或「Windows PowerShell」
  4. 从右键菜单中选择「以管理员身份运行」
  5. 在弹出的用户账户控制(UAC)对话框中点击「是」
  6. 在获得的管理员权限终端中,重新执行命令:
    nvm use 16.14.0
    
    (将 16.14.0 替换为需要的 Node.js 版本号)

补充说明: 如果问题仍然存在,可能需要检查:

  • 系统是否启用了符号链接功能
  • 用户是否对目标目录有完全控制权限
  • 是否存在杀毒软件拦截了相关操作

6.2 问题 2:macOS/Linux 下执行 nvm 提示「command not found」

详细原因分析: 此问题表明系统无法找到 NVM 命令,通常是由于:

  1. NVM 未正确安装
  2. 环境变量未正确配置
  3. 配置文件未加载
  4. 使用了错误的 shell 配置文件

完整解决方案

  1. 首先确认 NVM 是否已安装:

    ls ~/.nvm
    

    如果目录存在且包含 nvm.sh 文件,则 NVM 已安装。

  2. 检查 shell 类型:

    echo $SHELL
    

    • 如果显示 /bin/bash,编辑 ~/.bash_profile
    • 如果显示 /bin/zsh,编辑 ~/.zshrc
  3. 确保配置文件包含以下内容:

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
    

  4. 使配置生效:

    source ~/.bash_profile  # 或 source ~/.zshrc
    

  5. 验证安装:

    nvm --version
    

  6. 如果仍无效:

    • 完全关闭终端后重新打开
    • 检查其他可能加载的配置文件(如 ~/.bashrc, ~/.profile

6.3 问题 3:安装 Node 时下载缓慢或失败

详细原因分析: 由于网络限制,从 Node.js 官方服务器下载可能非常缓慢甚至失败,特别是在中国大陆地区。淘宝提供了完整的 Node.js 和 npm 镜像,可以显著提高下载速度。

完整解决方案

Windows 系统配置:

  1. 找到 NVM 的安装目录(通常为 C:\Users\<用户名>\AppData\Roaming\nvm
  2. 打开 settings.txt 文件(如不存在则创建)
  3. 添加或修改以下内容:
    node_mirror: https://npm.taobao.org/mirrors/node/
    npm_mirror: https://npm.taobao.org/mirrors/npm/
    

  4. 保存文件后,重新尝试安装 Node.js

macOS/Linux 系统配置:

  1. 打开终端
  2. 编辑 shell 配置文件:
    nano ~/.bash_profile  # 或 ~/.zshrc
    

  3. 添加以下环境变量:
    export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
    

  4. 保存文件(Ctrl+O,然后 Enter,再 Ctrl+X 退出)
  5. 使配置生效:
    source ~/.bash_profile
    

  6. 验证镜像是否生效:
    echo $NVM_NODEJS_ORG_MIRROR
    

备选镜像: 如果淘宝镜像不可用,还可以尝试:

  • 华为云镜像:https://mirrors.huaweicloud.com/nodejs/
  • 腾讯云镜像:https://mirrors.cloud.tencent.com/nodejs/

6.4 问题 4:切换 Node 版本后,全局安装的 npm 包不可用

详细原因分析: NVM 的一个重要特性是它为每个 Node.js 版本维护独立的全局 npm 包空间。这样设计的好处是:

  1. 避免不同 Node.js 版本间的全局包冲突
  2. 确保每个 Node.js 版本环境的纯净性
  3. 方便管理不同项目所需的工具链

完整解决方案

  1. 首先切换到目标 Node.js 版本:
    nvm use 18.17.1
    

  2. 检查当前 npm 版本:
    npm -v
    

  3. 重新安装所需的全局包。以下是常见全局工具的安装命令:
    npm install -g yarn
    npm install -g typescript
    npm install -g @vue/cli
    npm install -g create-react-app
    npm install -g nodemon
    

  4. 验证安装:
    yarn --version
    

优化建议

  1. 可以创建一个脚本记录常用全局包,方便切换版本后快速安装:
    # global_packages.sh
    npm install -g yarn typescript @vue/cli create-react-app nodemon
    

  2. 使用 nvm alias default 设置默认版本,避免频繁切换:
    nvm alias default 18.17.1
    

注意事项

  • 某些 npm 包可能有 Node.js 版本限制
  • 建议定期清理不再使用的全局包:
    npm list -g --depth=0  # 查看已安装的全局包
    npm uninstall -g <package-name>  # 卸载特定全局包
    


网站公告

今日签到

点亮在社区的每一天
去签到