Node.js版本管理工具 || 全配置安装
在进行Node.js开发的时候常常需要在各种版本之间来回切换,还需要适配服务器上的node.js版本,所以一个优秀的node版本管理工具就显得十分重要,下面对比几种主流的版本管理工具以及介绍其安装配置
NVM
介绍
NVM,全称 Node Version Manager。简单来说,它允许您在同一台计算机上安装、切换和管理不同版本的 Node.js。
NVM 的本质就是一个 Shell 脚本,通过修改当前 Shell 的 PATH 环境变量来工作。
它在 macOS 和所有 Linux 发行版上原生工作。而对于 Windows 用户,有一个功能相似但由不同社区维护的独立项目 nvm-windows
(适用于 Windows 的 nvm-windows 不是一个 Shell 脚本。它是一个完全独立的项目,是用 Go 语言编写的、编译好的二进制可执行程序)。
安装
对于MAC和Linux使用安装脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
或者
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
不出意外运行完成后重新启动终端就完成安装了,或者运行source ~/.bashrc
手动加载配置文件就完成安装了,安装完成后运行command -v nvm
出现nvm
就表示安装成功了。
但是常常是会出意外的,最常见的原因是网络连接问题,不能够访问到Github服务器,对于网络问题下面推荐一种方法用于安装
1.下载原始安装文件,从GitHub官网下载或者我下载上传的资源https://download.csdn.net/download/2301_79442295/91765952
2.解压到文件夹~/.nvm
(可以先创建文件夹再解压进去,注意路径,容易出现解压后里面还有一层文件夹),解压后如图
3.配置文件
打开文件
nano /root/.bashrc
将下面放入文件底部保存
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
Ctrl+X
+Y
+Enter
保存然后重载配置文件source ~/.bashrc
,运行验证command -v nvm
理论上能够看到输出nvm,说明下载安装完成
4.配置源(下面以淘宝源为例):
echo 'export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/' >> ~/.bashrc
source ~/.bashrc
配置npm源:
npm config set registry https://registry.npmmirror.com
然后下载最新的nodejs版本试试:
nvm install --lts
OK
对于Windows安装
对于Windows安装nvm就简单多了,同样官网或上传的资源https://download.csdn.net/download/2301_79442295/91765952下载安装包,推荐nvm-setup.exe
,正常流程安装就可以了。
然后配置:运行nvm root
查看安装文件位置,然后进入文件夹后看到有settings.txt,打开配置最后两行为源:
常用命令
命令 完整写法 描述和示例
nvm install <version>
nvm install <version> 安装指定版本的 Node.js。
• nvm install 18.17.0:安装精确版本。
• nvm install 18:安装 18.x 系列的最新版本。
• nvm install node:安装最新的稳定版 (node 是 current 的别名)。
nvm install --lts
nvm install --lts 安装最新的 LTS (长期支持) 版本。
nvm use <version>
nvm use <version> 在当前 Shell 中切换到指定版本。
• nvm use 16.20.1:切换到指定版本。
• nvm use --lts:切换到已安装的最新 LTS 版本。
nvm uninstall <version>
nvm uninstall <version> 卸载一个指定的版本。
• nvm uninstall 14.17.0
用于查看可用的和已安装的 Node.js 版本。
命令 完整写法 描述和示例
nvm ls
nvm list 列出所有本地已安装的 Node.js 版本。当前使用的版本会有一个箭头 -> 指示。
• nvm ls
nvm ls-remote
nvm list-remote 列出所有可供远程安装的 Node.js 版本(列表非常长)。
• nvm ls-remote:列出所有版本。
• nvm ls-remote --lts:只列出所有 LTS 版本。
• nvm ls-remote 18:列出所有 18.x 系列的远程版本。
nvm current
nvm current 显示当前正在使用的 Node.js 版本。
用于设置和管理版本的别名,简化切换操作。
命令 完整写法 描述和示例
nvm alias <name> <version>
nvm alias <name> <version> 为指定的版本创建一个别名。
• nvm alias my-project 14.17.0:之后可以用 nvm use my-project 来切换。
nvm unalias <name>
nvm unalias <name> 删除一个已经创建的别名。
• nvm unalias my-project
nvm alias default <version>
nvm alias default <version> 设置默认的 Node.js 版本。每次打开新的终端窗口时,都会自动使用这个版本。
• nvm alias default 18.17.0
用于在特定 Node.js 版本下执行命令或查找路径。
命令 完整写法 描述和示例
nvm run <version> [args]
nvm run <version> [args] 使用指定版本的 Node.js 来执行命令,而不切换当前 Shell 的版本。
• nvm run 14.17.0 --version:用 v14.17.0 的 node 程序输出其版本号。
• nvm run 16.20.1 my-script.js:用 v16.20.1 运行脚本。
nvm exec <version> <command>
nvm exec <version> <command> 在子 Shell 中切换到指定版本并执行命令。这对于需要设置环境的复杂命令很有用。
• nvm exec 18.17.0 npm install
nvm which <version>
nvm which <version> 显示指定版本的 node 可执行文件的安装路径。
• nvm which 18.17.0
.nvmrc 文件相关
用于项目级别的版本锁定。
命令 描述和示例
nvm use 在一个包含 .nvmrc 文件的目录中,此命令会自动读取文件内容并切换到指定的 Node.js 版本。
nvm install 在一个包含 .nvmrc 文件的目录中,如果文件中指定的 Node.js 版本尚未安装,此命令会自动下载并安装它,然后切换过去。
用于管理 NVM 工具本身。
命令 完整写法 描述和示例
nvm --version
nvm --version 显示当前安装的 NVM 的版本号。
nvm deactivate
nvm deactivate 在当前 Shell 中禁用 NVM,将 node 命令还原为系统预装的版本(如果存在的话)。
nvm unload
nvm unload 从 Shell 中卸载 nvm 函数和相关配置。需要重启 Shell 才能再次使用。
nvm set-colors <color_codes>
nvm set-colors <color_codes> 自定义 nvm ls 输出的颜色。
包管理
命令 完整写法 描述和示例
nvm reinstall-packages <version>
nvm reinstall-packages <version> 将在 <version> 版本中安装的全局 npm 包,在当前使用的版本中重新安装一遍。这在切换版本后迁移全局工具时非常有用。
• 假设当前使用的是 v18,想把之前 v16 的全局包安装过来:nvm reinstall-packages 16
Volta
Volta 是一个零配置、高性能的JS工具管理器,专为 Node.js、npm、yarn 及全局包的版本管理设计。同时具有跨平台支持的能力。
虽说使用Rust编写启动和切换速度快10倍,但是在实际使用中其实不太在意速度,但是其方便快捷,无需记忆命令,只需要打开项目文件然后Volta install
就能够方便切换到项目使用的版本。
安装方式十分简单,进入官网运行命令即可安装:
#Unix/macOS
curl https://get.volta.sh | bash
#Windows
winget install Volta.Volta
可看官网:https://zh.voltajs.com/guide/getting-started.html
asdf
asdf
相较于Volta
更受欢迎,采用Go进行编写,其不仅仅能够进行nodejs包管理,还支持Ruby、Elixir、Erlang等100多种语言和工具,可以说十分强大,非常适合全栈的程序猿。
但是单从nodejs版本管理来说其可能不如nvm或者是Volta。
不支持Windows
可以通过官网进行下载安装配置:https://asdf-vm.com/zh-hans/guide/getting-started.html
fnm
fnm是完全原生支持 Windows 的 Node.js 版本管理工具,无需 WSL 或其他虚拟化技术。
可以参考官网:https://fnm.nodejs.cn/docs/
安装:
# 使用 Windows 包管理器,慢的离谱
winget install Schniz.fnm
基本命令:
# 安装 Node.js 版本
fnm install 20.0.0
fnm install lts # 安装最新 LTS 版本
fnm install latest # 安装最新版本# 切换版本
fnm use 20.0.0 # 临时切换
fnm default 20.0.0 # 设置默认版本# 列出版本
fnm list # 显示已安装版本
fnm list-remote # 显示可安装版本# 卸载版本
fnm uninstall 18.18.0
综上,还是nvm好用