Skip to content

nvm 管理 node 版本

nvm(Node Version Manager)是一款 Node.js 版本管理工具,核心作用是解决「不同项目依赖不同 Node.js 版本」的冲突问题——无需手动卸载/安装 Node,只需通过命令即可快速切换全局或项目级的 Node 版本,是前端/Node 开发的必备工具。

以下是 nvm 的 核心概念、安装步骤、常用命令及实战场景,帮你彻底掌握其用法:

一、为什么需要 nvm?

开发中常遇到的痛点:

  • 项目 A 依赖 Node.js 14.x(旧版依赖不兼容高版本);
  • 项目 B 依赖 Node.js 20.x(需新特性支持);
  • 手动安装多个 Node 版本,切换时需反复修改系统环境变量,效率极低。

nvm 可一键实现:

  • 同时安装多个 Node 版本;
  • 快速切换全局 Node 版本;
  • 为单个项目指定专属 Node 版本;
  • 自动管理 Node 对应的 npm/yarn 版本(无需单独维护)。

二、安装 nvm(分系统说明)

注意:Windows 和 macOS/Linux 的 nvm 不是同一个工具,需区分安装(核心功能一致,但命令略有差异)。

1. macOS/Linux 系统(原生 nvm)

步骤 1:卸载已有的 Node(可选但推荐)

若之前手动安装过 Node,需先卸载(避免冲突):

bash
# 查看当前 Node 路径
which node  # 输出类似 /usr/local/bin/node
# 删除 Node 及相关文件
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/lib/node_modules

步骤 2:安装 nvm

通过官方脚本安装(需联网):

bash
# 官方安装命令(推荐)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 或用 wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

步骤 3:验证安装

关闭终端重新打开,执行以下命令,若显示版本号则安装成功:

bash
nvm --version  # 输出类似 0.39.7

若安装失败(常见问题):

  • 网络问题:GitHub 脚本无法访问,可改用国内镜像(如腾讯云):
    bash
    curl -o- https://mirrors.cloud.tencent.com/nvm/install.sh | bash
  • 环境变量未生效:手动添加环境变量到 ~/.bashrc~/.zshrc(根据终端类型选择):
    bash
    # 编辑配置文件(以 zsh 为例)
    vim ~/.zshrc
    # 粘贴以下内容(安装脚本本应自动添加,若缺失则手动加)
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # 加载 nvm
    # 生效配置
    source ~/.zshrc

2. Windows 系统(nvm-windows)

原生 nvm 不支持 Windows,需使用专门的 nvm-windows(本质是独立工具,命令与原生 nvm 相似)。

步骤 1:卸载已有的 Node(重要)

  • 从「控制面板 → 程序和功能」中卸载 Node.js;
  • 删除残留文件夹:C:\Program Files\nodejsC:\Users\你的用户名\AppData\Roaming\npm

步骤 2:下载安装 nvm-windows

  • 官网下载:nvm-windows Releases,选择最新版的 nvm-setup.exe
  • 双击安装,注意两点:
    1. 安装路径建议默认(如 C:\Users\你的用户名\AppData\Roaming\nvm),避免中文/空格;
    2. 后续 Node 的安装路径会自动关联(无需手动设置)。

步骤 3:验证安装

打开 新的命令提示符/PowerShell,执行:

bash
nvm version  # 输出类似 1.1.11

三、nvm 核心命令(通用)

以下命令在 macOS/Linux(原生 nvm)和 Windows(nvm-windows)中基本通用,个别差异会标注。

命令功能说明示例
nvm ls-remote列出远程所有可安装的 Node 版本(macOS/Linux);Windows 用 nvm list availablenvm ls-remote # 查看所有版本
nvm install <版本号>安装指定 Node 版本(可指定大版本,如 14、20)nvm install 18.17.0 # 安装 18.17.0
nvm install 20 # 安装 20.x 最新版
nvm ls / nvm list列出本地已安装的所有 Node 版本(带 * 的是当前激活版本)nvm ls # 查看本地版本
nvm use <版本号>切换到指定 Node 版本(全局生效)nvm use 18.17.0 # 切换到 18.17.0
nvm alias default <版本号>设置默认 Node 版本(重启终端后生效)nvm alias default 18.17.0 # 默认用 18.17.0
nvm uninstall <版本号>卸载指定 Node 版本nvm uninstall 16.20.0 # 卸载 16.20.0
nvm current查看当前激活的 Node 版本nvm current # 输出 v18.17.0

关键命令实战示例

  1. 安装并切换 Node 18 版本

    bash
    # 安装 Node 18.x 最新版
    nvm install 18
    # 切换到 18 版本
    nvm use 18
    # 验证 Node/npm 版本
    node -v  # 输出 v18.x.x
    npm -v   # 输出对应 npm 版本(如 9.x.x)
  2. 为项目指定 Node 版本(局部生效): 在项目根目录创建 .nvmrc 文件,写入目标版本:

    bash
    # 项目根目录执行(创建 .nvmrc 文件)
    echo "16.20.0" > .nvmrc
    # 进入项目目录后,执行以下命令自动切换到 .nvmrc 指定的版本
    nvm use

    (团队协作时,其他人进入项目执行 nvm use 即可自动适配版本,避免冲突)

四、优化配置:加速 Node 安装(国内镜像)

默认从 Node 官网下载版本,国内速度较慢,可配置 淘宝镜像 加速:

1. macOS/Linux(原生 nvm)

编辑 ~/.bashrc~/.zshrc,添加以下内容:

bash
# nvm 淘宝镜像配置
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
export NVM_NPM_MIRROR=https://npmmirror.com/mirrors/npm

生效配置:source ~/.zshrc(或对应文件)。

2. Windows(nvm-windows)

打开 nvm 安装目录下的 settings.txt 文件,添加:

txt
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

保存后,后续安装 Node 会自动走淘宝镜像,速度大幅提升。

五、常见问题与解决方案

1. 执行 nvm use 后,node -v 仍显示旧版本(Windows)

  • 原因:命令提示符/PowerShell 未以 管理员身份 运行,无权限修改环境变量;
  • 解决:关闭当前终端,右键打开「管理员模式」的命令提示符,重新执行 nvm use <版本号>

2. 安装 Node 后,npm 命令提示「找不到」

  • 原因:Node 版本安装不完整,或镜像配置错误;
  • 解决:
    1. 卸载该版本:nvm uninstall <版本号>
    2. 确认镜像配置正确(参考步骤四);
    3. 重新安装:nvm install <版本号>

3. macOS 下 nvm use 切换版本后,重启终端失效

  • 原因:未设置「默认版本」,终端重启后会恢复初始状态;
  • 解决:执行 nvm alias default <版本号>,设置默认版本。

六、nvm 与 npm 包管理的关系

  • nvm 管理 Node 版本:不同 Node 版本会自带对应的 npm 版本(如 Node 18 带 npm 9,Node 20 带 npm 10);
  • npm 管理 项目依赖包:每个 Node 版本下的 npm 包是独立的(安装在 ~/.nvm/versions/node/<版本号>/lib/node_modules),切换 Node 版本后,npm 包也会自动切换,避免依赖冲突。

总结

nvm 是解决 Node 版本冲突的「神器」,核心优势是 轻量、灵活、无侵入。无论是个人开发多项目,还是团队协作统一环境,都能大幅提升效率。

关键是记住:

  • 安装时区分系统(Windows 用 nvm-windows);
  • 常用命令:install(安装)、use(切换)、ls(查看)、alias default(设默认);
  • 国内用户必配淘宝镜像,加速安装。

Released under the MIT License.