使用 NVM 管理 Node.js 版本(适用于 macOS 与 Ubuntu)

本教程适用于 macOS(含 Intel 与 Apple Silicon 芯片)和 Ubuntu(Debian/类 UNIX 系统均可)。
NVM(Node Version Manager)是一款用于安装、卸载、切换 Node.js 和 npm 多版本的命令行工具。

备注:macOS 也可以通过 Homebrew 方式安装 Node.js,但本教程主要介绍 NVM 方式。


1. 安装 NVM

在终端中运行以下命令下载安装 NVM:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
  • 上述安装的是 v0.40.2(当前最新版),也可以前往 NVM 官方 GitHub 查看最新版本。

国内安装方式

bash -c "$(curl -fsSl https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh)"

或者下载后执行安装脚本:

./install.sh

2. 载入 NVM(无需重启终端)

安装完成后需让 NVM 生效:

  • Bash 用户(macOS / Ubuntu)

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

    之后建议执行:

    source ~/.bashrc
  • Zsh 用户(macOS 默认)

    source ~/.zshrc

也可以直接关闭终端再重新打开,NVM 会自动加载。


3. 验证安装是否成功

执行命令:

nvm --version

显示版本号即表示安装成功。


4. 使用 NVM 安装与管理 Node.js

  • 安装最新稳定版本:

    nvm install node
  • 安装指定版本(示例:v14.17.0):

    nvm install 14.17.0
  • 查看已安装的版本列表:

    nvm ls
  • 切换到指定版本:

    nvm use 14.17.0
  • 设置默认版本(终端启动时默认使用该版本):

    nvm alias default 14.17.0

5. 常用命令参考

命令 作用
nvm install <版本号> 安装指定版本的 Node.js
nvm uninstall <版本号> 卸载已安装的指定版本
nvm use <版本号> 切换至某个版本
nvm alias default <版本号> 设置默认版本
nvm list(或 nvm ls 查看当前已安装版本列表
nvm ls-remote 查看远程所有可用的 Node.js 版本
node -v / npm -v 查看当前 Node.js / npm 版本

6. 卸载 NVM(如需移除)

  1. 删除 NVM 安装目录:

    rm -rf ~/.nvm
  2. 清理终端配置文件中的 NVM 加载代码:

    • Bash 用户编辑 ~/.bashrc
    • Zsh 用户编辑 ~/.zshrc

    删除如下内容:

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
  3. 刷新环境变量或重启终端:

    source ~/.bashrc    # Bash 用户
    source ~/.zshrc     # Zsh 用户

7. 教程总结

项目 支持情况
macOS Intel 完全兼容
macOS M1/M2 (ARM) 完全支持(推荐配合 Rosetta)
Ubuntu / Debian 完全适配
安装方式 curl 安装脚本统一
环境变量加载 bash / zsh 均覆盖
多版本管理功能 安装、切换、卸载命令无差异

8. 使用小贴士

  • 推荐安装 LTS 版本:

    nvm install --lts
  • 使用 zsh 的用户建议手动编辑 ~/.zshrc 确保 NVM 加载命令存在,否则自动加载可能失败。

  • 在图形终端(如 iTerm2、Windows Terminal WSL)使用 NVM,记得执行 source 使配置生效。


此文档旨在帮助你在 macOS 与 Ubuntu 系统上高效管理 Node.js 多版本,提升开发环境灵活性。

作者:admin  创建时间:2025-10-20 16:03
最后编辑:admin  更新时间:2025-10-20 16:07