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使用安装脚本:
bash 复制代码
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

或者

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.配置文件

打开文件

bash 复制代码
nano /root/.bashrc

将下面放入文件底部保存

bash 复制代码
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.配置源(下面以淘宝源为例):

bash 复制代码
echo 'export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/' >> ~/.bashrc
bash 复制代码
source ~/.bashrc

配置npm源:

bash 复制代码
npm config set registry https://registry.npmmirror.com

然后下载最新的nodejs版本试试:

bash 复制代码
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就能够方便切换到项目使用的版本。

安装方式十分简单,进入官网运行命令即可安装:

bash 复制代码
#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/

安装:

bash 复制代码
# 使用 Windows 包管理器,慢的离谱
winget install Schniz.fnm

基本命令:

bash 复制代码
# 安装 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好用

相关推荐
池易3 小时前
调用后端接口像调用函数一样简单——Fun改变了我的开发方式
后端·go
Shawn_Shawn3 小时前
Spring-Ai-Mcp-Server 快速入门
后端·agent·mcp
心月狐的流火号3 小时前
分布式事务XA模式:基于数据库的2PC
分布式·后端
二闹3 小时前
一文搞懂Python装饰器,还能用它给代码加权限锁!
后端·python
大鱼七成饱4 小时前
10分钟搞懂 Rust 的 & 怎么用
后端
DS小龙哥4 小时前
基于STM32设计的智能音乐练习辅助系统
后端
_風箏4 小时前
SpringBoot【集成p6spy】使用p6spy-spring-boot-starter集成p6spy监控数据库(配置方法举例)
后端
_風箏4 小时前
SpringBoot【集成Druid】监控数据库报错 Failed to bind properties under ‘‘ to javax.sql.DataS
后端
shepherd1114 小时前
深入解析Flowable工作流引擎:从原理到实践
java·后端·工作流引擎