NVM NodeJs版本管理 通关宝典

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

NVM NodeJs版本管理 通关宝典🏹

文章目录

  • NVM NodeJs版本管理 通关宝典🏹
    • 一、NVM是什么
    • 二、开始使用NVM
    • 三、NVM 命令速查
    • 四、手动安装特定Node版本(Windows)🙄
      • 4.1 NVM for windows 运行机制
      • 4.2 手动安装流程
    • 五、切换 NVM 下载镜像源
    • 六、常见问题
    • 参考资料💘
    • 推荐博文🍗


一、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多版本通关宝典》

  • 官方手册:
    • NVM for windows README.md
    • NVM README.md
  • 网络文献:
    • how-to-install-use-node-version-manager-nvm
    • 淘系前端团队:管理 node 版本,选择 nvm 还是 n?
  • 镜像源:
    • 清华大学Node镜像源

推荐博文🍗

  • 『精』CSS 小技巧之BEM规范
  • 『干货』WebStorm代码模板配置大全

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

21. Mysql 事件或定时任务,解放双手,轻松实现自动化

文章目录 概念常见操作事件调度器操作查看事件创建事件删除事件启动与关闭事件 精选示例构造实时数据定时统计数据 总结参考资料 概念 Mysql 事件是一种在特定时间点自动执行的数据库操作,也可以称呼为定时任务,它可以自动执行更新数据、插入数据、删除…

x-cmd pkg | doggo - 现代化的 DNS 客户端

目录 简介首次用户快速实验指南功能特点类似工具与竞品进一步探索 简介 doggo 是一个由 Karan Sharma 于 2020 年使用 Go 语言开发的 DNS 客户端。它类似于 dig 命令,但旨在以现代化、简洁和可读的格式输出 DNS 查询结果。 首次用户快速实验指南 使用 x doggo 即可…

1.4 day4 IO进程线程

使用两个子进程进行文件拷贝&#xff0c;父进程进行资源回收 #include <myhead.h> int main(int argc, const char *argv[]) {//创建一个文件描述符并以只读的方式打开int fd-1;if((fdopen("./test.bmp",O_RDONLY))-1){perror("open error");return…

IDAPython详细版(二)

六&#xff1a;操作数 可以使用idc.get_openrand_typed(ea,n)得到操作数的类型。ea是地址&#xff0c;n是索引 这里有8种不同类型的操作数类 0_void 如果一个指令木有任何操作数它将返回0 0_reg 如果一个操作数是一个普通的寄存器将返回此类型。这个值在内部表示为1. o_mem …

java: 写入数据到HBase

一、添加依赖 <dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.6.0</version></dependency><dependency><groupId>org.apache.hbase</groupId><art…

Prometheus-Alertmanage钉钉实现告警

获取钉钉的webhook地址 1、注册企业钉钉 a、注册企业钉钉 浏览器打开钉钉注册页面 填入手机号码&#xff0c;填入获取到的验证码&#xff0c;点注册 填入企业资料并注册 注册成功后&#xff0c;扫描二维码下载钉钉&#xff0c;如下图&#xff1a; b、添加机器人 管理后台 因…

Modbus RTU Learn

一、传输方式 采用主从应答方式进行 帧格式 功能码对应寄存器 演示01功能码 返回数据 0F 转换成二进制 02功能码 0F 转换成二进制 03功能码 读两个寄存器 04功能码 返回数据&#xff0c;读两个寄存器 05功能码 06功能码 10功能码 响应报文

在centos上安装WordPress 及创建配置文件无反应的解决方案

一、安装Apache服务 1.直接在命令行中输入以下命令即可,顺便安装编译组件&#xff1a; yum install -y httpd yum install -y httpd-devel2.启动Apache服务和设置Apache自启&#xff1a; 1 systemctl start httpd 2 systemctl enable httpd 3.添加一个测试页面&#xff0c;…

windows安装kafka以及kafka管理工具推荐

windows安装 1.下载地址 下载地址 下载最新版本的.tgz文件解压 2.修改配置 修改config目录下的zookeeper.properties中的dataDir属性 server.properties文件中的log.dir属性 3.启动zookeeper 进入到bin\windows\下的用cmd输入zookeeper-server-start.bat ..\..\config\zo…

5款实用的Win10软件,提高工作效率

​ 大家好&#xff0c;今天我来给大家推荐5款实用的Win10软件&#xff0c;它们可以帮助你提高工作效率&#xff0c;优化系统性能。 1.视频剪辑——DaVinciResolve ​ DaVinciResolve是一款集视频剪辑、调色、特效和音频后期制作于一体的专业软件。它拥有强大的图像处理技术&a…

Minitab 18安装包下载及安装教程

Minitab 18下载链接&#xff1a;https://docs.qq.com/doc/DUnRSaml6UHRpWFdn 1.选中下载好的安装包&#xff0c;鼠标右键解压到”Minitab 18“文件夹 2.选中”f4-mini181-setup.exe“&#xff0c;鼠标右击选择“以管理员身份运行” 3.点击“确定” 4.点击“下一步” 5.勾选我接…

android 分享文件

1.在AndroidManifest.xml 中配置 FileProvider <providerandroid:name"android.support.v4.content.FileProvider"android:authorities"com.example.caliv.ffyy.fileProvider"android:exported"false"android:grantUriPermissions"true…

宝宝的听力发育进程

小宝宝听力发育进程&#xff1a; 在母亲怀孕中晚期&#xff0c;小宝宝就有了听觉&#xff1a;6个月胎儿的听力已经和成年人相当了。 ◆ 出生0-7天的小宝宝会随声音变化产生不同反应&#xff0c;当在宝宝耳边拍巴掌或摇摇铃&#xff0c;宝宝可能会有惊跳反应&#xff0c;或吓哭…

查询json数组

步骤一&#xff1a;创建表格 首先&#xff0c;我们需要创建一个表格来存储包含JSON对象数组的数据。可以使用以下代码创建一个名为 my_table 的表格&#xff1a; CREATE TABLE my_table (id INT PRIMARY KEY AUTO_INCREMENT,json_data JSON ); 上述代码创建了一个包含两个列的…

SCADE—产品级安全关键系统的MBD开发套件

产品概述 随着新能源三电、智能驾驶等新技术的应用&#xff0c;汽车中衍生出很多安全关键零部件&#xff0c;如BMS、VCU、MCU、ADAS等&#xff0c;相应的软件在汽车中的比重越来越大&#xff0c;并且安全性、可靠性要求也越来越高。ANSYS主要针对安全关键零部件的嵌入式产品级软…

stable diffusion 基础教程-提示词之艺术风格用法

展现夕阳 golden hour, (rim lighting):1.2, warm tones, sun flare, soft shadows, vibrant colors, hazy glow, painterly effect, dreamy atmosphere阴影 chiaroscuro, (high contrast):1.2, dramatic shadows, bold highlights, moody atmosphere, captivating inte…

【六大排序详解】终篇 :冒泡排序 与 快速排序

终篇 :冒泡排序 与 快速排序 1 冒泡排序1.1 冒泡排序原理1.2 排序步骤1.3 代码实现 2 快速排序2.1 快速排序原理2.1.1 Hoare版本代码实现 2.1.2 hole版本代码实现 2.1.3 前后指针法代码实现 2.1.4 注意取中位数局部优化 2.1.5 非递归版本非递归原理代码实现 2.2 特性总结 谢谢阅…

室内效果图没有质感?外国大神这6个实用技巧,带你轻松掌握!

为了创作出高级有质感的效果图&#xff0c;我们需要注意构图、颜色、布光等多种因素&#xff0c;以打造出逼真的渲染效果。不过不要担心&#xff01;今天小编带来了国外知名设计师Arch Viz Artist在油管上分享的6个实用小技巧。看完带你轻松提升室内效果图的表现力&#xff01;…

WPS/PPT插件-大珩助手免费功能更新-特殊字符

扩展特殊格式下特殊字符&#xff0c;增加200多个常用特殊字符&#xff0c;可直接点击插入。 PPT大珩助手 1.7.6 1、提供素材库功能&#xff0c;可实现一键保存素材&#xff0c;支持对选中的形状&#xff0c;支持一键替换素材&#xff0c;保留原素材的尺寸和位置&#xff0c;…

RTT打印时间戳

官方的RTT VIEWER没有打印接收时间戳的功能&#xff0c;经过查找后发现可以有以下三种打印时间戳的方法。 第三方的RTT上位机ExtraPutty自己打印 第三方的RTT上位机 码云上有一个RTT_T2的仓库&#xff0c;基于python qt包写的画面&#xff0c;通过pylink来jlink通信。 优点…