Mac——使用nvm管理node


nvm 是什么

  • nvm(Node Version Manager)可以让我们在同一台机器上 安装、切换、卸载多个 Node.js 版本,不影响系统自带 Node
  • 注意:推荐 不要 用 brew install node,而是用 nvm 管理

安装 nvm(macOS / Linux)

  • 查看是否已安装

    1
    nvm -v
    • 若没有安装,则需要安装
  • 官方安装脚本(推荐)

    1
    2
    3
    4
    5
    # curl 安装
    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
  • 让终端生效

    • 注:安装完后会自动在 ~/.zshrc~/.bashrc 中添加:
      1
      2
      export NVM_DIR="$HOME/.nvm"
      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
  • 手动生效:

    1
    2
    3
    source ~/.zshrc
    # 或
    source ~/.bashrc

常用 nvm 命令

  • 安装 Node.js

    1
    2
    3
    4
    5
    6
    # 最新 LTS(推荐)
    nvm install --lts

    # 指定版本
    nvm install 18
    nvm install 20.11.0
  • 查看已安装版本

    1
    nvm ls
  • 查看远程可用版本:

    1
    nvm ls-remote --lts
    • 列出所有可用版本
    • --ltsnvm ls-remote 的一个过滤参数,意思是 只列出 Node.js 的 LTS(Long-Term Support,长期支持)版本,不显示普通 Current/“latest” 版本
      • nvm ls-remote 默认会列出 所有​ 远程可用版本(非常多,包含偶数/奇数版、Current 版)
  • 切换 / 设置默认 Node 版本

    1
    2
    3
    4
    5
    # 切换版本为 18
    nvm use 18

    # 设置默认版本为 20
    nvm alias default 20
    • 可通过添加下面的语句在 ~/.zshrc来设为某个版本为默认(新终端自动生效):
      1
      nvm use 20 && nvm alias default 20
  • 查看当前 Node / npm 版本

    1
    2
    node -v
    npm -v
  • 卸载某版本

    1
    nvm uninstall 16
  • 卸载 nvm,需要删除下面的文件夹饼删除 ~/.zshrc 中的 nvm 相关配置

    1
    rm -rf ~/.nvm

高级功能:项目级自动切换(推荐)

  • 在项目根目录创建 .nvmrc,然后:

    1
    echo "20" > .nvmrc
  • 进入目录后:

    1
    nvm use

附录:Homebrew 曾安装过 node

  • 建议卸载避免冲突:

    1
    2
    brew uninstall --ignore-dependencies node
    brew cleanup
  • 确保 which node 指向:

    1
    /Users/user_name/.nvm/versions/node/...