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
相关推荐
黄焖鸡能干四碗2 小时前
企业元数据梳理和元数据管理方案(PPT方案)
大数据·运维·网络·分布式·spark
君穆南9 小时前
基于 NFS 与 Rsync 实现跨服务器 Seafile 数据平滑迁移实战
linux·运维·git
bloglin999999 小时前
scp、rsync远程文件同步
linux·运维·服务器
迦南的迦 亚索的索9 小时前
LINUX环境
linux·运维·服务器
yuanjj889 小时前
linux下调试域格CLM920 NC5等9x07平台模块 QMI拨号
linux·运维·服务器
IMPYLH10 小时前
Linux 的 printenv 命令
linux·运维·服务器·bash
SilentSamsara10 小时前
SSH 远程管理:密钥登录 + 隧道转发,一次性配置好
linux·运维·服务器·ubuntu·centos·ssh
LN花开富贵10 小时前
【ROS】鱼香ROS2学习笔记一
linux·笔记·python·学习·嵌入式·ros·agv
疏星浅月10 小时前
数据对齐的底层原理与性能优化
linux