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用户)。
相关推荐
ruanCat13 小时前
Prettier 明明执行成功,Markdown 为什么还是没变?一次插件误诊复盘
前端·javascript·node.js
思盛iOS签名上架13 小时前
App苹果签名有什么作用?
macos·ios·cocoa
屋昂仼14 小时前
NestJS 从入门到企业级实战(二):依赖注入(DI)深度拆解
node.js
MartinYeung517 小时前
[论文学习]MAC:多智能体宪章学习
人工智能·学习·macos
greasyfork18 小时前
Mac Sketch v2026.3 矢量图设计工具
macos·ui·sketch
Larru-Sun19 小时前
从零开始用 Docker 部署 Node.js 后端服务
docker·容器·node.js
__zRainy__21 小时前
Node系列 · Express:nodemon
node.js·express
__zRainy__21 小时前
Node系列 · Express:中间件
中间件·node.js·express
无定义_1 天前
萌新联赛(六)
macos·objective-c·cocoa
2601_962122971 天前
Node.js的解释
node.js