NVM NodeJs版本管理 通关宝典

NVM NodeJs版本管理 通关宝典.jpg

NVM NodeJs版本管理 通关宝典🏹


一、NVM是什么

NVM 是对于不同版本 NodeJs 的管理工具,NVM 允许安装不同版本 NodeJs,并通过命令行在这些版本之间切换,最大程度上解决在一台机器上对于依赖不同版本 NodeJs 项目,需要来回重装对应 NodeJs 版本的问题。
列如,如果在依赖 Node18 项目上使用 Node16 安装项目依赖,很有可能会出现这么一条提示,某个包必须要在 Node18 下安装 ,这个时候一般只有两种选择,要么就该项目更改至兼容 Node16,要么重新安装 Node18 版本,大多人会选择后者。

xxx@xxx.xx.xx: The engine "node" is incompatible with this module. Expected version ">=18". Got "16.20.2"

# 或则是
This project requires Node version ">=18"

NVM 原先起始于 Mac OSX 和 Linux 平台,Windows 平台下的 NVM 与这些平台的有所不同,Windows 平台下的 NVM 是基于 Golang 语言编写的,且利用了 Windows 的文件系统机制,有时候在网上搜索到的 NVM 命令发现不管用了,不要感到奇怪,八成是因为平台问题所导致。
除了 NVM 之外,还有 n 能够做到不同版本 NodeJs 之间的切换,这两种都是目前主流的方式,不同的是 NVM 是独立于 NodeJs 外用其他语言开发的软件工具,而 n 是 NodeJs 的一个包。从我个人评价来讲,我推荐使用 NVM,试图用被自己管理的东西作为依赖进行编写,感觉既很奇怪也没意义,不能做到像 NVM 独立于 NodeJs 一键式的操作,也达不到其他语言所拥有的性能与高效性,具体感兴趣的可以查看各自仓库主页了解。

一个有意思的消息是,NVM的作者正在开发代替 MVM For Windows 的替代升级版,详情可查阅https://github.com/coreybutler/nvm-windows/wiki/Runtime


二、开始使用NVM

在使用之前,请确保卸载任何预先存在的 Node 安装, 打开 NVM 的 Github 发布页,选择 nvm-setup.exe 安装包,具体版本自行选择,一般下载最新。
个人觉得,使用 NVM 比使用 Node 安装包的安装流程还要简便,相比较传统的 NodeJS 安装包,NVM 的安装可谓是非常简易,也就四流程,排除掉开始、确定流程,实际需要操作的也就两个地方。
需要注意的是,NodeJs映射地址在安装完毕后并不会马上存在,只有在 NVM 中安装并使用了任何版本的 NodeJs 后,才会自动创建该目录, 如果使用了默认路径或需要更改,可以在配置文件中更改,详情见 三、手动安装特定Node版本(Windows) 。
2.1 NVM 安装流程
安装完毕后,打开终端输入以下命令,NVM 的安装流程到这就结束了,接下来可以按照自己习惯安装一些包,并且以以往的方式正常运行你的项目。

# 安装 NodeJs@16.20.2
nvm install 16.20.2
# 使用该版本 NodeJs
nvm use 16.20.2

# 验证 NodeJs 是否正常
node --version & npm --version

当然 NVM 的核心在于多版本控制,既然开始使用 NVM,那大多数人需要用到它的这个功能,以下命令主要展示如何安装多版本 NodeJs 并在不同版本间切换。

# 查看 NodeJs 已发布版本
nvm ls available
# 安装 NodeJs@18.18.2 与 NodeJs@14.21.3
nvm install 14.21.3 & nvm install 18.18.2
# 查看已有的 NodeJs 版本
mvm ls

# 使用 14.21.3 版本
nvm use 14.21.3
# 使用 18.18.2 版本
nvm use 18.18.2

三、NVM 命令速查

命令描述平台兼容示例
nvm arch显示当前 NodeJs 运行模式,32位/64位windows✅nvm arch
nvm current显示当前运行的 NodeJs 版本windows✅ liunx✅ mac✅nvm current
nvm debug显示 NVM 配置信息,如版本号、安装路径、不同版本 NodeJs 安装数等windows✅nvm debug
nvm install [arch]安装指定 NodeJs 版本,可以是 'latest’表示最新版本,'lts’表示最新稳定版本,设置[arch] 来安装32位还是64位,默认64windows✅ liunx✅ mac✅nvm install 16.20.2 64
nvm uninstall 卸载指定 NodeJs 版本windows✅ liunx✅ mac✅nvm uninstall 16.20.2
nvm use [version] [arch]使用指定 NodeJs 版本,设置[arch] 表示32位还是64位,默认64windows✅ liunx✅ mac✅nvm use 16.20.2
nvm list [available]列出已安装的 NodeJs 版本,输入 available 列出可安装版本,别名lswindows✅ liunx✅ mac✅nvm list
nvm ls
nvm on启用 NodeJs,使用已有的最新 NodeJs 版本windows✅nvm on
nvm off关闭 NodeJs,此时系统环境不存在 NodeJswindows✅nvm off
nvm proxy [url]设置用于下载的网络代理windows✅nvm proxy 192.168.0.1
nvm node_mirror [url]设置 NodeJs 下载镜像源windows✅nvm node_mirror https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/
nvm npm_mirror [url]设置 npm 下载镜像源windows✅nvm npm_mirror https://registry.npmmirror.com
nvm root [path]设置 NodeJs 映射目录windows✅
nvm ls-remote列出可安装版本liunx✅ mac✅nvm ls-remote
nvm alias设置版本别名,支持 use 别名,特殊 default 名称可在任意新 shell 中使用的默认版本liunx✅ mac✅nvm alias 16 16.20.2
nvm alias default 16.20.2
nvm run 切换到其他版本的 Node 并立即打开 Node 控制台liunx✅ mac✅nvm run node

四、手动安装特定Node版本(Windows)🙄

除了通过 NVM 自带的命令进行安装之外,用户其实可以自行手动安装,这种情况非常适合在没网络,只能使用离线资源的情况下。

4.1 NVM for windows 运行机制

在讲解如何手动安装之前,先来了解一下 NVM 对于多个 Node 版本管理方式。如果已经在 NVM 上安装了部分 NodeJs 版本,那么在 NVM 的安装目录下就能看到存放对应版本的文件夹目录,里面装的其实就是与 NodeJS 官方一模一样的程序文件,NVM 在 use 一个 NodeJs 版本时会将对应的版本放到 NodeJs 运行快捷地址,此地址对应在安装 NVM 时选择的 NodeJs 安装地址,可以简单理解成普通安装 NodeJs 安装包时的选择目录,在 二、开始使用NVM 里的流程中提到过,默认是在 C 盘,如果后期需要更改位置,可以更改 NVM 安装目录下的 settings.txt 文件,而不重新安装。
如果还想要了解更多 NVM 在 Windows 平台的机制,可以去查看 NVM Github地址 说明文档。

root: # NVM安装地址
path: # NodeJs安装地址
arch: # NodeJs安装位数,32 or 64
proxy: # 下载代理,一般为none
node_mirror: # NodeJs镜像源地址
npm_mirror: # Npm镜像源地址

4.1 版本映射原理

4.2 手动安装流程

1)、下载对应版本安装包
Node 官网 下载地址上,可以看到 NodeJs 各版本下载入口都在这,其中偶数版本均为受到长期支持的 LTS 稳定版本,建议下载并使用 LTS 版本。需要注意的是,需要在 NVM 上使用并不是需要一个安装程序,而是对于 NodeJs 的执行文件,请下载这些文件的压缩包。

特殊版本可在国内镜像源下载。

4.2 NodeJs版本表
4.3 NodeJs下载页

2)、在 NVM 目录下创建以版本命名的文件夹
将下载下来的文件解压,并丢入NVM 目录下创建以版本命名的文件夹中,文件夹名称与其他版本命名规则保持一致,别忘记带个 v 前缀。

3)、验证所安装版本的 NodeJs
在 NVM 中列出版本列表,并切换至手动安装的版本,检查是否正确安装,至此就大功告成。

# 列出 NodeJs 版本
nvm ls
# 以14.21.3版本为例进行验证
nvm use 14.21.3
node --version & npm --version

五、切换 NVM 下载镜像源

在 NVM 控制镜像源很简单,也不用担心每个 NodeJs 版本都要配置一次,NVM 都为我们处理好了,只需配置一次,所有不同版本的 NodeJs 都能被更改。对于 NodeJS 下载镜像源来说,使用频率比较少,可以不更改。

# npm 更改为淘宝镜像源
nvm npm_mirror https://registry.npmmirror.com
# NodeJs 下载地址更改清华大学镜像源
nvm node_mirror https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/

不同 NodeJs 对于全局包地址都是共享的,对于第三方包管理工具,需要单独进行配置修改,以 yarn 为列。

# 查看当前镜像源
yarn config get registry --global
# 设置淘宝镜像源
yarn config set registry https://registry.npmmirror.com --global

这些命令本质上都在修改配置文件,NVM 安装目录下的 setting.text


六、常见问题

主要讲解在使用 NVM 中可能会遇到的问题,并提供应对方法,80%的问题可通过手动安装解决。

  • Version xx.xx.xx is not available.

    需要安装的版本在云端不存在,要么更换 NodeJs 下载镜像源,要么手动安装。

  • Could not download npm for node XXXXX

    如果在安装某些特定版本时出现了下述提示,那么大概是官方服务器下载地址出了问题,一般也在特定版本下才出现,。要是遇到这种情况的话,那么只能自己手动去node官方下载所需版本存放到NVM版本库中,参考 三、手动安装特定Node版本
    image.png

  • npm不是内部或外部命令,也不是可运行的程序或批处理文件。

    检查一下版本库中文件是否完整,如果不完整尝试重新安装该版本,实在不行手动去node官方下载所需版本存放到NVM版本库中。6.1 文件异常


参考资料💘

🍅因发布平台差异导致阅读体验不同,源文贴出:《NVM 管理Node多版本通关宝典》


推荐博文🍗

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值