Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)
本文介绍在Windows电脑中,下载、部署NVM(node.js version management)环境,并基于其安装不同版本的Node.js的方法。
在之前的文章Windows系统下载、部署Node.js与npm环境的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/144810076)中,我们介绍过Node.js环境的部署方法;而有时,我们希望在同一台电脑中配置多个不同版本的Node.js,这就需要用到NVM了——其可以让我们在同一台电脑中配置多个不同版本的Node.js,并随时切换当前所需的版本。本文就介绍一下NVM在Windows电脑中的部署方法。
需要注意,如果之前电脑中安装过Node.js环境,那么需要先将原先的Node.js删除干净后,再安装NVM;具体删除方法,大家可以参考干净卸载Windows的Node.js环境的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/145097336)。
首先,我们进入NVM在GitHub中的主页(https://github.com/coreybutler/nvm-windows/releases/tag/1.1.12),并在Assets中,选择对应的安装包。对于Windows电脑,我们选择如下图所示的安装包即可。
下载后,将安装包解压,即可得到.exe
格式的安装文件,如下图所示。
随后,双击得到的.exe
格式文件,即可开始安装。安装过程中,其他流程都选择默认的选项即可,但有2
个地方需要稍微注意。
首先,在如下图所示的环节中,可以自行修改一下NVM的安装路径;这里要记住这个路径。
其次,还需要在下图所示的环节中,指定用NVM下载Node.js时的安装路径;同样的,也记住这个路径。
在这里,为了方便,我是直接在C
盘中新建了一个文件夹,作为NVM下载Node.js的路径;如下图所示。
完成上述安装操作后,同时按下Windows徽标
键与R
键,并在其中输入cmd
,打开一个命令行窗口,并在其中输入如下代码;这个代码用以查看当前电脑中NVM的版本。
nvm -v
执行上述代码,如下图所示。可以看到,已经可以正常显示NVM版本,证明我们目前已经成功安装NVM了。
但是,建议大家在完成NVM的安装后,再换一下源——这个源就是下载Node.js时的来源。网上很多教程说,这个换源的步骤是可选的,所以一开始我也就没换源(主要是之前用Python的时候几乎从来没换过源,也没什么问题,所以没有换源的习惯)。但是,后来发现如果不换源的话,下载Node.js就很容易出问题,所以后面还是换了一下。
首先,进入我们前面指定的NVM的安装路径,并找到其中的settings.txt
文件,如下图所示。
随后,在这个.txt
文件末尾,增加两行,内容如下。
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
修改后,这个文件如下图所示。通过上述操作,就将源换到了淘宝源。
至此,我们就可以基于NVM环境,来下载、安装多个不同版本的Node.js了。
首先,在命令行中输入如下代码,查看当前可以下载、安装的全部Node.js版本
nvm ls available
执行上述代码,如下图所示。
其中,上述代码只能获取版本比较新的一部分Node.js,如果需要更早的版本,大家可以查看这个网站:https://nodejs.org/en/about/previous-releases。
在这里,我就以12.22.12
版本为例,来介绍一下用NVM下载、安装Node.js的方法。
还是在命令行中,输入如下代码。其中,这个版本号按照大家的实际需求来改即可。
nvm install 12.22.12
执行上述代码。这里需要注意,如果出现如下图所示的情况(先看图中第一次执行nvm install 12.22.12
后出现的提示),说明没有成功安装Node.js——我当初出现这个错误,估计就是一开始没有换源导致的。
虽然上图中,第二次执行nvm install 12.22.12
,也会说已经安装过此版本的Node.js;但是第一次执行后的那个提示,就是说明确实没有安装成功。
这个时候,如果我们用如下的代码,也是无法删除此版本的Node.js的。
nvm uninstall 12.22.12
执行上述代码,可以看到它说无法删除这个版本,建议用nvm list
命令来看一下当前自己电脑中到底安装了哪些版本;可是如果真的用了nvm list
命令,就会发现它又告诉你确实安装了这个版本,无限循环。如下图所示。
针对上述这种安装Node.js失败,且NVM还误以为已经安装过它的情况,其实也比较好解决。
首先,进入前述我们设置的NVM的安装路径,将上述存在问题的Node.js的版本号的那个文件夹整体删除,如下图所示。
随后,再进入用NVM下载Node.js时的安装路径,将其中大小为0
的node.exe
文件删除,如下图所示。
随后,即可恢复正常。例如,此时通过nvm list
命令,可以看到那个有问题的版本已经删除掉了,如下图所示(看其中第二个nvm list
命令)。
随后,重新执行安装语句(在我这里就是nvm install 12.22.12
这句),就可以看到已经能够正常安装了,如下图所示。
安装完毕后,首先通过nvm use 12.22.12
命令,将NVM当前所用的Node.js的版本切换到指定版本;随后,可以通过node -v
命令,可以查看NVM当前所用的Node.js的版本,如下图所示。
到这里,就完成了NVM环境,以及指定版本Node.js的下载与安装。
至此,大功告成。
欢迎关注:疯狂学习GIS
相关文章:

Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)
本文介绍在Windows电脑中,下载、部署NVM(node.js version management)环境,并基于其安装不同版本的Node.js的方法。 在之前的文章Windows系统下载、部署Node.js与npm环境的方法(https://blog.csdn.net/zhebushibiaoshi…...

51单片机入门基础
目录 一、基础知识储备 (一)了解51单片机的基本概念 (二)掌握数字电路基础 (三)学习C语言编程基础 二、开发环境搭建 (一)硬件准备 (二)软件准备 三、…...
老centos7 升级docker.io为docker-ce 脚本
旧的centos7 之前安装的是docker.io 由于一些原因,像docker compose 等版本变化,以及docker.io源受限等,我们要更新到docker-ce 并使用国内阿里云的源怎么处理?下面直接上脚本,upgrade-docker.sh #!/bin/bashset -e# 创建临时目录 TEMP_DIR"./tmp" mkdir -p "…...

数仓建模(三)建模三步走:需求分析、模型设计与数据加载
本文包含: 数据仓库的背景与重要性数据仓库建模的核心目标本文结构概览:需求分析、模型设计与数据加载 目录 第一部分:需求分析 1.1 需求分析的定义与目标 1.2 需求分析的步骤 1.2.1 业务需求收集 1.2.2 技术需求分析 1.2.3 成果输出…...
PHP xml 常用函数整理
————————-DOM 函数————————————– 1、DOMDocument->load() 作用:加载xml文件 用法:DOMDocument->load( string filename ) 参数:filename,xml文件; 返回:如果成功则返回 TRUE&a…...

数据结构(Java版)第八期:LinkedList与链表(三)
专栏:数据结构(Java版) 个人主页:手握风云 目录 一、链表中的经典面试题 1.1. 链表分割 1.2. 链表的回文结构 1.3. 相交链表 1.4. 环形链表 一、链表中的经典面试题 1.1. 链表分割 题目中要求不能改变原来的数据顺序,也就是如上图所示。…...
数据结构学习记录-数据结构概念
1 数据结构: 数据结构是计算机存储,管理数据的方式。 数据必须依据某种逻辑联系组织在一起存储在计算机内 数据结构研究的就是这种数据的存储结构和数据的逻辑结构。 1.1 数据的逻辑结构: 逻辑结构指的是数据本身之间的关系 集合&#x…...

【Linux】11.Linux基础开发工具使用(4)
文章目录 3. Linux调试器-gdb使用3.1 背景3.2 下载安装3.3 使用gdb查询3.4 开始使用 3. Linux调试器-gdb使用 3.1 背景 程序的发布方式有两种,debug模式和release模式 Linux gcc/g出来的二进制程序,默认是release模式 要使用gdb调试,必须…...
数据结构与算法之栈: LeetCode 1047. 删除字符串中的所有相邻重复项 (Ts版)
删除字符串中的所有相邻重复项 https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/ 描述 给出由小写字母组成的字符串 s,重复项删除操作会选择两个相邻且相同的字母,并删除它们在 s 上反复执行重复项删除操作,直到无…...
C++ 在线编译软件介绍、杭电OJ、北大OJ、力扣OJ
在线编译软件的话,可见下: https://www.jyshare.com/compile/12/ 杭州电子科技大学开发的一个免费的写代码地址 ,杭电OJ https://bestcoder.hdu.edu.cn/ 北大OJ http://poj.org/ 力扣OJ 力扣 (LeetCode) 全球极客挚爱的技术成长平台...
Java学习笔记(二十三)
1 CacheEvict CacheEvict是Spring框架中用于清空缓存的注解。以下是对CacheEvict注解的详细介绍: 1.1 作用 CacheEvict注解的主要作用是删除缓存中的数据。在方法执行后或执行前(根据配置),它可以清空指定的缓存项或整个缓存区…...
《AI赋能鸿蒙Next,开启智能关卡设计新时代》
在游戏开发领域,关卡设计是至关重要的一环,它直接影响着玩家的游戏体验和沉浸感。而随着人工智能技术的飞速发展,结合鸿蒙Next系统的强大功能,为游戏的智能关卡设计带来了全新的思路和方法。 利用AI学习玩家行为模式 在鸿蒙Next…...

js:正则表达式
目录 正则表达式的语法 定义 检测 检索 元字符 边界符 量词 字符类 表单判断案例 修饰符 过滤敏感词 正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本字符组合模式 正则表达式是一…...
linux环境使用docker部署多个war项目
如果你的需求是在一个服务器上部署多个Tomcat项目,并且每个项目需要独立运行,可以通过以下方式实现: 1. 使用不同的端口 每个Tomcat项目可以使用不同的端口号(如9090、9091、9092等),并通过Docker容器分别…...
【react】使用antd Table渲染数据遇到的报错问题
记录自己在开发过程中遇到的报错问题: 目录 原本写法:错误分析:解决方案: 原本写法: render: (text) > {console.log(text, "111111text");console.log(typeof text, "111111text");return t…...

JVM之垃圾回收器G1概述的详细解析
G1(并发) G1 特点 G1(Garbage-First)是一款面向服务端应用的垃圾收集器,应用于新生代和老年代、采用标记-整理算法、软实时、低延迟、可设定目标(最大 STW 停顿时间)的垃圾回收器,用于代替 CMS࿰…...

1.15寒假作业
web:nss靶场ez_ez_php 打开环境,理解代码 使用个体传参的方法,首先代码会检查file参数的前三个字符是不是php,如果是就输出nice,然后用include函数包含file,绕过不是则输出hacker,如果没有file…...

RK356x bsp 5 - 海华AW-CM358SM Wi-Fi/Bt模组调试记录
文章目录 1、环境介绍2、目标3、海华AW-CM358SM3.1、基本信息3.2、支持SDIO3.03.3、电气特性 4、适配流程步骤5、SDIO控制器适配5.1、sdio dts配置5.2、验证 6、Wi-Fi 适配6.1、wifi dts配置6.2、驱动移植6.2.1、kernel menuconfig6.2.2、传统驱动移植6.2.3、RK SDK WIFI/BT驱动…...
支持Google Analytics快捷添加的CMS:费用与部署形式详解
CMS 的费用和部署形式是选择平台的重要参考因素,不同的业务需求需要不同的解决方案。本文将从费用和部署形式两个角度,详细分析支持 Google Analytics 快捷集成的 CMS 和工具,帮助您更好地了解这些平台的特点。 1. BigCommerce 费用ÿ…...

CSS | 实现三列布局(两边边定宽 中间自适应,自适应成比)
目录 示例1 (中间自适应 示例2(中间自适应 示例3(中间自适应 示例4 (自适应成比 示例5(左中定宽,右边自适应 示例6(中间自适应 示例7(中间自适应 示例8(中间定宽…...

fpga系列 HDL:跨时钟域同步 双触发器同步器
目录 **双触发器同步器(Two-Flip-Flop Synchronizer)示例代码**:双触发器同步器的优缺点优点:缺点:适用场景: 应用实例:同步来自spi_slave的单个使能信号 跨时钟域的设计需要特别小心࿰…...

金融项目实战 05|Python实现接口自动化——登录接口
目录 一、代码实现自动化理论及流程 二、脚本实现的理论和准备工作 1、抽取功能转为自动化用例 2、搭建环境(测试工具) 3、搭建目录结构 三、登录接口脚本实现 1、代码编写 1️⃣api目录 2️⃣script目录 2、断言 3、参数化 1️⃣编写数据存储文件:jso…...

《HTML在网络安全中的多面应用:从防范攻击到安全审查》
Html基础 Html简介 HTML(HyperText Markup Language,超文本标记语言)是用于描述网页内容和结构的标准语言。以下是对HTML的简要介绍: 基本概念 定义: HTML不是一种编程语言,而是一种标记语言。 它使用标…...

Linux网络 | 学习传输层网络协议之UDP(短篇)
前言: 本节内容正式迈入传输层网络协议的知识殿堂, 之前的文章, 我们都是在应用层进行翻来覆去。 比如http就是应用层协议, 只不过使用了tcp的系统调用。 从本节开始, 友友们将会学习传输层两大协议: UDP和…...
iOS - 内存屏障的使用场景
内存屏障的使用是为了解决以下几个关键问题: 1. CPU 乱序执行 // 没有内存屏障时,CPU 可能乱序执行 void example() {// 这两行代码可能被 CPU 重排序a 1; // 操作1flag true; // 操作2 }// 使用内存屏障确保顺序 void safeExample() {a 1;…...
MySQL 8.0 新特性详解与实用示例
MySQL 8.0 新特性详解与实用示例 1. 引言 MySQL 8.0 是 MySQL 版本系列中具有里程碑意义的更新版本,带来了大量新功能和优化,极大地提升了数据库的性能和可用性。本文将深入介绍 MySQL 8.0 的主要新特性及其应用场景,帮助你在项目中更高效地…...

【STM32-学习笔记-5-】ADC
文章目录 ADCADC函数Ⅰ、ADC_InitTypeDef结构体参数①、ADC_Mode②、ADC_DataAlign③、ADC_ExternalTrigConv④、ADC_ContinuousConvMode⑤、ADC_ScanConvMode⑥、ADC_NbrOfChannel Ⅱ、ADC配置示例1、单次转换,非扫描单次转换非扫描模式下,获取多通道的…...

TY1801 反激变换器PWM GaN功率开关
TY1801 是一款针对离线式反激变换器的多模式 PWM GaN 功率开关。TY1801 内置 GaN 功率管,它具备超宽 的 VCC 工作范围,非常适用于 PD 快充等要求宽输出电压的应用场合,系统不需要使用额外的绕组或外围降压电路,节省系统 BOM 成本。TY1801 支持 Burst&…...

Jenkins安装、插件下载及构建环境配置详解
Jenkins简介 1.1 简介 Jenkins 是一个基于Java开发的开源持续集成工具,它提供了一个开放且易用的软件平台,主要用于自动化构建、测试和部署软件项目,以实现持续集成(CI)和持续交付/部署(CD)。…...
ESP32,uart安装驱动uart_driver_install函数剖析,以及intr_alloc_flags 参数的意义
在 uart_driver_install 函数中,参数 RX_BUF_SIZE * 2 指定了接收缓冲区(RX buffer)的大小。这个参数对于 UART 驱动程序来说非常重要,因为它决定了可以存储多少接收到的数据,直到应用程序读取它们为止。下面是对该函数…...