本文最后更新于:2024年5月7日 下午

NVM 是 NodeJS 开发环境的版本管理工具,可以方便的在同一台设备上进行多个node版本之间切换,本文记录相关信息。

简介

Node Version Manager(NVM) 是一种用于管理多个主动节点.js版本的工具。

Node.js平台,Node.js工具社区和Node.js库是快速移动的目标 - 在一个Node.js版本下可能有效的方法不能保证适用于另一个版本的Node.js。因此,用户需要一些方法在 Node 的多个版本之间切换。

NVM 允许用户:

  • 使用简单的命令在本地下载任何远程长期支持 (LTS) 版本的 Node.js。
  • 直接从命令行在 Node.js 的多个版本之间轻松切换。
  • 设置别名以轻松在不同下载版本的 Node.js之间切换。

nvm 安装

Windows

下载链接:https://github.com/coreybutler/nvm-windows/releases

Linux 脚本安装

官方 github: https://github.com/nvm-sh/nvm

需要安装好 curl 和 git

1
2
sudo apt install git
sudo apt install curl
1
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

下载后安装在 $HOME/.nvm 文件夹中。

1
2
$ nvm -v                             
0.39.7

打印出版本信息说明安装成功。

Linux 手动安装

  • 选择目录,下载项目:
1
2
cd ~/
git clone https://github.com/nvm-sh/nvm.git .nvm
  • 进入项目目录,并切换最新版本:
1
2
cd ~/.nvm
git checkout v0.39.3
  • 激活nvm:
1
./nvm.sh
  • 使用nvm ls命令测试;
    修改配置文件加入环境变量,否则重启系统后不能自动识别nvm命令;

  • 使用 geditvim 修改 ~/.bashrc~/.profile,执行命令如下:

1
2
sudo gedit ~/.bashrc
sudo gedit ~/.profile
  • 在配置文件的末尾加入以下配置(注意:NVM_DIR对应的是自己真实存放nvm的目录):
1
2
3
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
  • 刷新配置文件,使配置生效:
1
2
source ~/.bashrc
source ~/.profile
  • 如出现nvm命令不识别的问题,原因可能是配置文件修改错误或未刷新配置文件。

使用方法

来自帮助文档

命令 含义 备注
nvm --help 显示帮助信息
–no-colors 抑制彩色输出
nvm --version 版本信息
nvm install [<version>] 下载并安装 <version>
nvm install -s 跳过二进制下载,仅从源代码安装
nvm install -b 跳过源下载,仅从二进制安装
–reinstall-packages-from=<version> 重新安装包
–lts 安装时,仅选择LTS(长期支持)版本
–lts=<LTS name> 安装时,仅从特定 LTS 系列的版本中选择
–skip-default-packages 安装时跳过default-packages文件(如果存在)
–latest-npm 安装后,尝试升级到给定节点版本上的最新工作 npm
–no-progress 禁用任何下载的进度条
–alias=<name> 安装后,将指定的别名设置为指定的版本。 (与:nvm 别名 <名称> <版本> 相同)
–default 安装后,将默认别名设置为指定的版本。 (与:nvm 别名默认 <版本> 相同)
nvm uninstall <version> 卸载一个版本
nvm uninstall --lts 使用自动 LTS(长期支持)别名“lts/*”卸载(如果可用)
nvm uninstall --lts=<LTS name> 使用提供的 LTS 行的自动别名进行卸载(如果可用)
nvm use [<version>] 修改 PATH 以使用 <版本>。如果可用,则使用 .nvmrc,并且省略版本。
–silent 静默
nvm exec [<version>] [<command>] 在 <版本> 上运行 <命令>。如果可用,则使用 .nvmrc,并且省略版本。
nvm run [<version>] [<args>] 使用 <args> 作为参数在 <version> 上运行 node。如果可用,则使用 .nvmrc,并且省略版本。
nvm current 显示当前激活的 Node 版本
nvm ls [<version>] 列出已安装的版本,匹配给定的 <version>(如果提供) nvm list
nvm ls-remote [<version>] 列出可安装的远程版本,匹配给定的 <version>(如果提供) nvm list available (Windows 下)
nvm version <version> 将给定描述解析为单个本地版本
nvm version-remote <version> 将给定描述解析为单个远程版本
nvm deactivate 撤消 nvm 对当前 shell 的影响
nvm alias [<pattern>] 显示以 <pattern> 开头的所有别名
nvm alias <name> <version> 设置名为 <name> 的别名,指向 <version>
nvm unalias <name> 删除名为 <name> 的别名
nvm install-latest-npm 尝试升级到当前节点版本上最新的工作“npm”
nvm reinstall-packages <version> <version> 中包含的全局 npm 软件包重新安装到当前版本
nvm unload 从 shell 中卸载 nvm
nvm which [current | <version>] 显示已安装节点版本的路径。如果可用,则使用 .nvmrc,并且省略版本。
nvm cache dir 显示 nvm 缓存目录的路径
nvm cache clear nvm 的空缓存目录
nvm set-colors [] 使用格式“yMeBg”设置五种文本颜色。支持时可用。
Color codes:
r/R = red / bold red
g/G = green / bold green
b/B = blue / bold blue
c/C = cyan / bold cyan
m/M = magenta / bold magenta
y/Y = yellow / bold yellow
k/K = black / bold black
e/W = light grey / white

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
nvm install 8.0.0                     Install a specific version number
nvm use 8.0 Use the latest available 8.0.x release
nvm run 6.10.3 app.js Run app.js using node 6.10.3
nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3
nvm alias default 8.1.0 Set default node version on a shell
nvm alias default node Always default to the latest available node version on a shell

nvm install node Install the latest available version
nvm use node Use the latest version
nvm install --lts Install the latest LTS version
nvm use --lts Use the latest LTS version

nvm set-colors cgYmW Set text colors to cyan, green, bold yellow, magenta, and white

安装 nodejs 环境

  • 这里我安装 v18.20.2 版本的 node.js
1
2
3
4
5
6
7
8
$ nvm install v18.20.2                                                                                                       
Downloading and installing node v18.20.2...
Downloading https://nodejs.org/dist/v18.20.2/node-v18.20.2-linux-x64.tar.xz...
############################################################################################# 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v18.20.2 (npm v10.5.0)
Creating default alias: default -> v18.20.2
  • 查看当前安装版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
nvm list                                                                                                                   ──(一,429)─┘
-> v18.20.2
default -> v18.20.2
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v18.20.2) (default)
stable -> 18.20 (-> v18.20.2) (default)
lts/* -> lts/iron (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.2
lts/iron -> v20.12.2 (-> N/A)
  • 使用刚刚安装的 node.js
1
$ nvm use node
  • 查看当前版本
1
2
$ nvm current                                                                                                               
v18.20.2
  • 配套的 npm 版本
1
2
$ npm -v                                                                                                                    
10.5.0

更换npm源

1
2
3
4
5
6
7
8
9
// 查询源
npm config get registry

// 更换淘宝源
npm config set registry https://registry.npmmirror.com

// 恢复官方源
npm config set registry https://registry.npmjs.org

npm-check 和 npm-upgrade

npm-checknpm-upgrade 是两个不同的 Node.js 包,它们用于不同 purposes 的 npm 包管理和升级。

  1. npm-check: 这个工具可以帮助你检查 npm 包的更新。当你运行 npm-check 命令时,它会告诉你哪些包有更新,哪些包已经是最新版本。这是一个简单的命令行工具,可以快速查看是否有可用的更新,而不需要升级整个 npm 环境。

    使用方式:

    1
    2
    npm install -g npm-check
    npm-check
  2. npm-upgrade: 这个工具用于升级 npm 包到最新版本。与 npm-check 不同,npm-upgrade 会实际升级你的项目中的包。这是一个全局安装的包,可以用来升级 npm 仓库中的包,也可以用来升级 npm 自身。

    使用方式:

    1
    2
    npm install -g npm-upgrade
    npm-upgrade package-name

    其中 package-name 是你想要升级的 npm 包的名称。

  • 请注意,npm-checknpm-upgrade 可能不是最常用的包来检查和升级 npm 包。通常,直接使用 npm 命令的 update 选项就足够了,它可以自动检查并升级你的项目中的所有依赖项。
1
npm update
  • 如果你想要升级 npm 自身,可以使用以下命令:
1
npm install -g npm@latest
  • 或者,如果你使用的是 nvm (Node Version Manager),你可以简单地切换到最新版本的 Node.js,这通常也会升级 npm:
1
nvm use node

卸载 nvm

Help 文档中有讲:

1
to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)

也就是删了 $HOME/.nvm 文件夹就行。

参考资料



文章链接:
https://www.zywvvd.com/notes/coding/node-js/nvm-usage/nvm-usage/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

Nodejs 版本管理工具 nvm 介绍
https://www.zywvvd.com/notes/coding/node-js/nvm-usage/nvm-usage/
作者
Yiwei Zhang
发布于
2024年4月29日
许可协议