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 安装 {#nvm-安装}
Windows {#Windows}
下载链接:https://github.com/coreybutler/nvm-windows/releases
Linux 脚本安装 {#Linux-脚本安装}
官方 github: https://github.com/nvm-sh/nvm
需要安装好 curl 和 git
下载后安装在 $HOME/.nvm
文件夹中。
打印出版本信息说明安装成功。
Linux 手动安装 {#Linux-手动安装}
- 选择目录,下载项目:
- 进入项目目录,并切换最新版本:
- 激活nvm:
-
使用nvm ls命令测试;
修改配置文件加入环境变量,否则重启系统后不能自动识别nvm命令; -
使用
gedit
或vim
修改~/.bashrc
和~/.profile
,执行命令如下:
- 在配置文件的末尾加入以下配置(注意:NVM_DIR对应的是自己真实存放nvm的目录):
- 刷新配置文件,使配置生效:
- 如出现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 | |
示例:
安装 nodejs 环境 {#安装-nodejs-环境}
- 这里我安装 v18.20.2 版本的 node.js
- 查看当前安装版本
- 使用刚刚安装的 node.js
- 查看当前版本
- 配套的 npm 版本
更换npm源 {#更换npm源}
npm-check 和 npm-upgrade {#npm-check-和-npm-upgrade}
npm-check
和 npm-upgrade
是两个不同的 Node.js 包,它们用于不同 purposes 的 npm 包管理和升级。
-
npm-check
: 这个工具可以帮助你检查 npm 包的更新。当你运行npm-check
命令时,它会告诉你哪些包有更新,哪些包已经是最新版本。这是一个简单的命令行工具,可以快速查看是否有可用的更新,而不需要升级整个 npm 环境。使用方式:
-
npm-upgrade
: 这个工具用于升级 npm 包到最新版本。与npm-check
不同,npm-upgrade
会实际升级你的项目中的包。这是一个全局安装的包,可以用来升级 npm 仓库中的包,也可以用来升级 npm 自身。使用方式:
其中
package-name
是你想要升级的 npm 包的名称。
- 请注意,
npm-check
和npm-upgrade
可能不是最常用的包来检查和升级 npm 包。通常,直接使用npm
命令的update
选项就足够了,它可以自动检查并升级你的项目中的所有依赖项。
- 如果你想要升级 npm 自身,可以使用以下命令:
- 或者,如果你使用的是
nvm
(Node Version Manager),你可以简单地切换到最新版本的 Node.js,这通常也会升级 npm:
卸载 nvm {#卸载-nvm}
Help 文档中有讲:
也就是删了 $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
文章链接:
https://www.zywvvd.com/notes/coding/node-js/nvm-usage/nvm-usage/