MacBook 安装 nvm 管理 Node.js 多版本教程

一、概述

nvm(Node Version Manager)是MacOS下管理Node.js多版本的主流工具,可一键安装、切换、卸载不同Node版本,自动配置环境变量,无需手动修改系统配置。

二、前置条件

  • MacBook 已安装 Git(新Mac默认自带,若未安装可通过 xcode-select --install 安装Xcode Command Line Tools)。
  • 知晓当前使用的Shell类型(MacOS默认是zsh,可通过 echo $SHELL 查看)。

三、安装 nvm

1. 执行安装命令

打开终端(Terminal),执行以下命令安装最新版nvm:

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

若curl访问失败,改用wget:

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

2. 检查自动配置(关键步骤)

nvm安装时会自动将环境变量配置写入Shell配置文件(zsh对应~/.zshrc,bash对应~/.bash_profile/~/.bashrc),无需手动添加:

  1. 打开配置文件检查:

    bash 复制代码
    # zsh用户
    open ~/.zshrc
    # bash用户
    open ~/.bash_profile
  2. 确认文件中包含以下内容(有则无需重复添加):

    bash 复制代码
    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

3. 使配置生效

执行以下命令让配置立即生效:

bash 复制代码
# zsh用户
source ~/.zshrc
# bash用户
source ~/.bash_profile

4. 验证nvm安装成功

执行命令查看nvm版本,输出版本号即安装成功:

bash 复制代码
nvm --version
# 示例输出:v0.39.7

四、使用 nvm 管理 Node.js 版本

1. 安装Node版本

操作 命令示例
安装最新版 nvm install node
安装指定版本 nvm install 18.18.0
安装LTS(长期支持)版 nvm install --lts

2. 查看已安装版本

bash 复制代码
nvm ls
# 输出示例:
#       v16.20.2
# ->    v18.18.0
#        v20.9.0
# default -> 18.18.0
# node -> stable (-> v20.9.0)
# lts/* -> lts/iron (-> v20.9.0)

3. 切换Node版本

操作 命令示例
切换到指定版本 nvm use 18.18.0
切换到LTS版 nvm use --lts
切换到最新版 nvm use node

4. 设置默认版本(推荐)

避免每次打开终端重新切换版本,设置默认版本:

bash 复制代码
nvm alias default 18.18.0

5. 卸载指定版本

bash 复制代码
nvm uninstall 18.18.0

五、验证Node环境

切换版本后,执行以下命令确认版本生效:

bash 复制代码
node -v  # 输出当前Node版本,如v18.18.0
npm -v   # 输出对应npm版本,如9.8.1

若版本未更新,重启终端即可(环境变量重新加载)。

六、常见问题解决

  1. 执行nvm --version提示command not found: nvm:
    • 重启终端重试;
    • 重新执行nvm安装脚本;
    • 检查Shell配置文件是否有nvm配置,无则手动添加。
  2. 切换版本后node -v无变化:
    • 确认执行了nvm use <版本号>;
    • 重启终端或执行source ~/.zshrc(zsh用户)。
相关推荐
hantmac7 小时前
不记得文件名时,Mac 上的搜索还能怎么做?
人工智能·macos
这是谁的博客?8 小时前
AI 加速器 RTL 数字系统设计深度解析:从 MAC 阵列 Verilog 实现到时序收敛与时钟功耗的芯片落地全链路
人工智能·macos·ai·verilog·数字ic设计·ai芯片·rtl
slacker-kian8 小时前
M 系列 Mac 清除顽固的 CorpLink
macos·corplink·m系列
hey you~9 小时前
个体户门店办理400电话,如何对接订单系统实现来电弹窗
node.js·webhook·400电话·门店数字化·来电弹窗·订单系统对接
kk_net889913 小时前
FSNotes:macOS 和 iOS 上的开源笔记管理器
笔记·其他·macos·ios
zhangfeng11331 天前
com.apple.quarantine 并不是乱码,而是 macOS Gatekeeper 给下载文件自动打上的“隔离属性
macos·策略模式
甘晴void1 天前
我给 Magpie 做了个 macOS 桌宠:106 段动画,请求一多就亮灯
macos·electron·开源·deepseek·桌面宠物·magpie
donecoding1 天前
Apple 芯片 Mac 的终端为什么还在跑 Intel?从 tmux 查起
macos
DevLoom_1 天前
macOS 27 升级后 Time Capsule 无法备份?AFP 协议废弃后的完整解决方案与备份迁移教程
macos·时间机器·macos27·macos 27备份·macos实用技巧
金海星科技1 天前
船舶交通管理中心的人工智能值守:从“听、说、读、写“看人机协同
人工智能·macos·xcode