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 2sudo 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
文件夹中。
12 | $ nvm -v 0.39.7 |
---|
打印出版本信息说明安装成功。
Linux 手动安装
- 选择目录,下载项目:
12 | cd ~/git clone https://github.com/nvm-sh/nvm.git .nvm |
---|
- 进入项目目录,并切换最新版本:
12 | cd ~/.nvmgit checkout v0.39.3 |
---|
- 激活nvm:
1 | ./nvm.sh |
---|
- 使用nvm ls命令测试; 修改配置文件加入环境变量,否则重启系统后不能自动识别nvm命令;
- 使用
gedit
或vim
修改~/.bashrc
和~/.profile
,执行命令如下:
12 | sudo gedit ~/.bashrcsudo gedit ~/.profile |
---|
- 在配置文件的末尾加入以下配置(注意:NVM_DIR对应的是自己真实存放nvm的目录):
123 | 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 |
---|
- 刷新配置文件,使配置生效:
12 | source ~/.bashrcsource ~/.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 |
示例:
12345678910111213 | nvm install 8.0.0 Install a specific version numbernvm use 8.0 Use the latest available 8.0.x releasenvm run 6.10.3 app.js Run app.js using node 6.10.3nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3nvm alias default 8.1.0 Set default node version on a shellnvm alias default node Always default to the latest available node version on a shellnvm install node Install the latest available versionnvm use node Use the latest versionnvm install --lts Install the latest LTS versionnvm use --lts Use the latest LTS versionnvm set-colors cgYmW Set text colors to cyan, green, bold yellow, magenta, and white |
---|
安装 nodejs 环境
- 这里我安装 v18.20.2 版本的 node.js
12345678 | $ 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 sha256sumChecksums matched!Now using node v18.20.2 (npm v10.5.0)Creating default alias: default -> v18.20.2 |
---|
- 查看当前安装版本
1234567891011121314151617 | nvm list ──(一,4月29)─┘-> v18.20.2default -> v18.20.2iojs -> 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.2lts/iron -> v20.12.2 (-> N/A) |
---|
- 使用刚刚安装的 node.js
1 | $ nvm use node |
---|
- 查看当前版本
12 | $ nvm current v18.20.2 |
---|
- 配套的 npm 版本
12 | $ npm -v 10.5.0 |
---|
更换npm源
123456789 | // 查询源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-check
和 npm-upgrade
是两个不同的 Node.js 包,它们用于不同 purposes 的 npm 包管理和升级。
npm-check
: 这个工具可以帮助你检查 npm 包的更新。当你运行 npm-check
命令时,它会告诉你哪些包有更新,哪些包已经是最新版本。这是一个简单的命令行工具,可以快速查看是否有可用的更新,而不需要升级整个 npm 环境。
使用方式:
12 | npm install -g npm-checknpm-check |
---|
npm-upgrade
: 这个工具用于升级 npm 包到最新版本。与 npm-check
不同,npm-upgrade
会实际升级你的项目中的包。这是一个全局安装的包,可以用来升级 npm 仓库中的包,也可以用来升级 npm 自身。
使用方式:
12 | npm install -g npm-upgradenpm-upgrade package-name |
---|
其中 package-name
是你想要升级的 npm 包的名称。
- 请注意,
npm-check
和npm-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://blog.csdn.net/qq_22182989/article/details/125387145
- https://blog.csdn.net/xhp312098226/article/details/131247719
- https://github.com/nvm-sh/nvm