nvm - node 版本管理工具【macOS/Linux】

文章目录

        • [1. nvm 介绍](#1. nvm 介绍)
        • [2. nvm 安装](#2. nvm 安装)
        • [3. 包管理器安装](#3. 包管理器安装)
        • [4. nvm 命令概览](#4. nvm 命令概览)
        • [5. 查看可用的版本](#5. 查看可用的版本)
        • [6. 安装和卸载 node](#6. 安装和卸载 node)
        • [7. 查看已安装列表](#7. 查看已安装列表)
        • [8. 切换 node 版本](#8. 切换 node 版本)
        • [9. nvm 缓存清理](#9. nvm 缓存清理)
1. nvm 介绍

本文记录的是 Linux(MacOS) 的 nvm 使用总结,和 Windows 版的 nvm 有些命令是不一样的

nvm 全称 node version manager,也就是 node 版本控制

  • nvm 是一个 node 的版本管理工具,它是一个命令行应用,可以简单操作 node 版本的切换、安装、查看等

  • 当你进行两个或多个 node 项目开发,并且这些项目的 node 版本要求不一样,nvm 可以很好的进行 node 版本切换

常用命令总结,以便后续回顾用法,更多命令请继续往下看

bash 复制代码
# 查看 nvm 版本号
nvm -v
# 查看已安装的 node 版本
nvm ls
# 查看指定版本的所有 lts 版本
nvm ls-remote --lts 16
nvm ls-remote --lts 16.13
# 安装 v16 最新的 lts 版本
nvm install 16 --lts
nvm install 16.13 --lts
# 卸载某个版本
nvm uninstall 16.13
2. nvm 安装

如果你的电脑已经安装 node,那么在安装 nvm 之前要先卸载掉,避免后面产生不必要的冲突

手动安装

运行安装脚本,因为这是安装指定版本,所以你安装时应从官方代码仓库中获取最新版本的安装命令

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

安装脚本会将 nvm 仓库拉取到 ~/.nvm,并自动将下方代码片段添加到正确的 Shell 配置文件

  • 如果当前是 Zsh 终端,会在 ~/.zshrc 中添加
  • 如果当前是 Bash 终端,会在 ~/.bashrc 中添加
bash 复制代码
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

它的主要作用是:每次打开一个新的终端窗口时,自动加载 nvm 环境,让你能够直接使用 nvm 命令

逐行解释它的详细功能:

bash 复制代码
# 定义 nvm 的安装目录,设置一个环境变量 NVM_DIR,指向 nvm 的安装位置
export NVM_DIR="$HOME/.nvm"
# 加载 nvm 的核心功能脚本,比如:nvm_install、nvm_use 等
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# 加载自动补全脚本,比如:输入 nvm in,按下 tab,会自动提示 nvm install 命令可用
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
手动升级

如果你是手动安装的 nvm,并且想要升级版本,运行以下脚本:

bash 复制代码
# 升级脚本做的事情:进入 nvm 安装目录、拉取最新变更、查看最新版本、使用新版本
(
  cd "$NVM_DIR"
  git fetch --tags origin
  git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`
) && \. "$NVM_DIR/nvm.sh"
手动卸载

想要手动卸载 nvm,执行以下操作(从官方仓库中查看的步骤):

首先,使用 nvm unload 从终端会话中移除 nvm 命令并删除安装目录,依次运行以下命令:

bash 复制代码
nvm_dir="${NVM_DIR:-~/.nvm}"
nvm unload
rm -rf "$nvm_dir"

编辑 Shell 配置文件,并删除下面内容:

bash 复制代码
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
3. 包管理器安装

第一步:通过 homebrewinstall 命令安装 nvm

bash 复制代码
brew install nvm

nvm 安装成功后,执行命令查看 nvm 版本,你会发现,提示找不到 nvm 命令,这是因为终端 shell 没有正确加载 nvm 脚本

bash 复制代码
nvm -v

要解决这个问题,要先确认当前终端使用的 shell 类型(目前大多数都是使用 zsh,也是当前新版 mac 默认的 shell)

bash 复制代码
echo $SHELL

第二步:将以下内容添加到终端配置文件(不同的 shell 类型,终端配置文件是不同的),让终端能够正确加载 nvm 脚本

终端的 shell 类型如果是 zsh,将以下内容添加到 ~/.zshrc 文件

复制代码
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

终端的 shell 类型如果是 bash,运行以下命令,可以将内容添加到 ~/.bash_profile 文件中

bash 复制代码
echo 'source /opt/homebrew/opt/nvm/nvm.sh' >> ~/.bash_profile
source ~/.bash_profile

卸载 nvm

bash 复制代码
# 第一步: 卸载命令
brew uninstall nvm
# 第二步: 去除终端配置文件中 nvm 相关内容
export NVM_DIR="$HOME/.nvm"
# 第三步: 删除 nvm 安装目录
rm -rf ~/.nvm
4. nvm 命令概览

nvm 常用命令概览:

命令 描述 短名称用法
nvm 查看所有命令 -
nvm --version 查看 nvm 版本 nvm -v
nvm list 查看已安装的 node 版本 nvm ls
nvm ls-remote 查看远程可安装的版本 -
nvm current 查看当前使用的 node 版本 -
nvm use 切换 node 版本,临时使用,仅在当前终端会话中有效 -
bash 复制代码
# 查看 nvm 版本
nvm -v
nvm --version
# 临时切换版本
nvm use <version>
5. 查看可用的版本

运行以下命令,可以知道能够安装哪些 node 版本:

bash 复制代码
# 列出所有可安装的远程 node 版本
nvm ls-remote

如果只想看可以安装的长期支持版本,也就是 LTS 版本,可以使用 --lts 参数:

bash 复制代码
# 列出所有可安装的 lts 版本
nvm ls-remote --lts
# 只查看某个大版本的 lts 版本
nvm ls-remote --lts 16
nvm ls-remote --lts 16.20
6. 安装和卸载 node

安装和卸载:

bash 复制代码
nvm install <version>
nvm uninstall <version>

使用示例:

bash 复制代码
# 安装指定版本
nvm install 10.24.1
# 安装 16.x 的最新版
nvm install 16
# 安装 16.13.x 的最新版
nvm install 16.13
# 安装最新的 LTS 版本
nvm install --lts
# 安装 14 的最新 lts 版本
nvm install 14 --lts
7. 查看已安装列表

查看所有已安装的 node 版本

bash 复制代码
# 也可以使用缩略名:nvm ls
nvm list
nvm ls

还可以通过指定版本号,只查看某个版本范围的列表

bash 复制代码
# 只显示 22 版本的列表
nvm list 22
8. 切换 node 版本

nvm use 命令用于切换和使用指定版本,它的主要功能:

  • 切换版本:将当前终端会话中的 node 和 npm 切换到指定版本
  • 临时使用:仅在当前终端会话中生效,其他终端窗口或新的窗口不受影响
bash 复制代码
# 切换到具体的某个版本号
nvm use 16.20.2
# 不输入完整的版本号也可以切换
nvm use 14
# 使用最新的 LTS 版本
nvm use --lts

nvm alias default 命令用于设置默认版本,在新的终端会话中自动使用该默认版本

bash 复制代码
# 将 16.20.2 设置为默认版本,每次打开新的终端窗口时都会自动切换到这个版本
nvm alias default 16.20.2
# 也支持版本号缺省值的用法,比如,将 v12.x、v12.18.x 设置为默认版本
nvm alias default 12
nvm alias default 12.18

结合上面命令,实际开发中,面对多个项目使用不同的 node 版本时,我们应该怎么利用 nvm 来便于我们使用呢 ?

  • 首先,设置一个默认版本,打开终端会话时默认使用该版本
  • 如果项目要求的版本和默认版本不一致,在进入项目根目录后,通过 nvm use 切换到项目需要的版本即可

如果觉得手动切换版本麻烦,也可以通过 .nvmrc 配置文件和自动化脚本实现自动切换版本。.nvmrc 用法详解

9. nvm 缓存清理

查看 nvm 缓存目录

bash 复制代码
nvm cache dir

清除 nvm 的 node 安装包缓存

复制代码
nvm cache clear
相关推荐
大树8813 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠13 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质13 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush413 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52013 小时前
Linux 11 动态监控指令top
linux
AI创界者14 小时前
PilotTTS 一键整合包(Win/Mac):8G 显存畅跑,实测解锁情绪与副语言的精准控制
人工智能·macos·aigc·音视频
Inhand陈工14 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智14 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩15 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_15 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化