Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)

news2025/1/16 19:21:43

  本文介绍在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,并随时切换当前所需的版本。本文就介绍一下NVMWindows电脑中的部署方法。

  需要注意,如果之前电脑中安装过Node.js环境,那么需要先将原先的Node.js删除干净后,再安装NVM;具体删除方法,大家可以参考干净卸载Windows的Node.js环境的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/145097336)。

  首先,我们进入NVMGitHub中的主页(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时的安装路径,将其中大小为0node.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

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

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

相关文章

基于STM32设计的粮食仓库(粮仓)环境监测系统

一、前言 1.1 项目开发背景 随着现代农业的发展和粮食储存规模的扩大,粮仓环境的智能化监控需求日益增长。传统的粮仓管理方式通常依赖人工检测和定期巡查,效率低下且容易出现疏漏,无法及时发现潜在问题,可能导致粮食受潮、霉变…

【Linux】--- 进程的等待与替换

进程的等待与替换 一、进程等待1、进程等待的必要性2、获取子进程status3、进程等待的方法(1)wait()函数(2)waitpid函数 4、多进程创建以及等待的代码模型5、非阻塞接口 轮询 二、进程替换1、替换原理2、替…

Vue2+OpenLayers添加/删除点、点击事件功能实现(提供Gitee源码)

目录 一、案例截图 二、安装OpenLayers库 三、安装Element-UI 四、代码实现 4.1、添加一个点 4.2、删除所有点 4.3、根据经纬度删除点 4.4、给点添加点击事件 4.5、完整代码 五、Gitee源码 一、案例截图 可以新增/删除标记点,点击标记点可以获取到当前标…

HTML中如何保留字符串的空白符和换行符号的效果

有个字符串 储值门店{{thing3.DATA}}\n储值卡号{{character_string1.DATA}}\n储值金额{{amount4.DATA}}\n当前余额{{amount5.DATA}}\n储值时间{{time2.DATA}} , HTML中想要保留 \n的换行效果的有下面3种方法: 1、style 中 设置 white-space: pre-lin…

GB44495-2024 汽车整车信息安全技术要求 - V2X部分前置要求

背景 GB 44495-2024《汽车整车信息安全技术要求》中关于V2X(车与外界通信)的部分,主要关注于通信安全要求,旨在确保车辆在与外部设备进行数据交互时的信息安全。其测试大致可分为消息层(数据无异常)、应用…

[PAT 甲级] 1179 Chemical Equation (DFS)

​ 题目翻译(GPT): 1179 化学方程式 化学方程式是一种用符号和公式表示化学反应的方法,其中反应物在方程式的左侧,生成物在右侧。例如: CH₄ 2O₂ -> CO₂ 2H₂O 表示反应物为甲烷和氧气&#xff…

android分区和root

线刷包内容: 线刷包是一个完整的android镜像,不但包括android、linux和用户数据,还包括recovery等。当然此图中没有recovery,但是我们可以自己刷入一个。 主要分区 system.img 系统分区,包括linux下主要的二进制程序。 boot.img…

每日一题(五):n个正整数排列,求组合后最大数

目录 一、题目 二、题目分析 (一)明确需求 背景知识:字符串的比较与连接 1.字符串的比较 2.字符串的连接 (二)分析思路 三、将思路转换为程序 四、总结 一、题目 给定n个正整数a1,a2,……,an对这n个数进行排列,求组合后可以得到…

【STM32-学习笔记-3-】TIM定时器

文章目录 TIM定时器Ⅰ、TIM定时器函数Ⅱ、TIM_TimeBaseInitTypeDef结构体参数①、TIM_ClockDivision②、TIM_CounterMode③、TIM_Period④、TIM_Prescaler⑤、TIM_RepetitionCounter Ⅱ、定时器配置Ⅲ、定时器外部中断NVIC配置 TIM定时器 Ⅰ、TIM定时器函数 // 将定时器寄存器…

【Rust自学】12.2. 读取文件

12.2.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print),是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步: 接收命令行参数读…

新垂直电商的社交传播策略与AI智能名片2+1链动模式S2B2C商城小程序的应用探索

摘要:随着互联网技术的不断进步和电商行业的快速发展,传统电商模式已难以满足消费者日益增长的个性化和多元化需求。新垂直电商在此背景下应运而生,通过精准定位、用户细分以及深度社交传播策略,实现了用户群体的快速裂变与高效营…

【ORACLE战报】2025.1月OCP | MySQL考试

2025.1月【最新考试成绩出炉】 OCP战报 MySQL 战报 部分学员成绩及证书

九 RK3568 android11 MPU6500

一 MPU6500 内核驱动 1.1 查询设备连接地址 查看原理图, MPU6500 I2C 连接在 I2C4 上, 且中断没有使用 i2c 探测设备地址为 0x68 1.2 驱动源码 drivers/input/sensors/gyro/mpu6500_gyro.c drivers/input/sensors/accel/mpu6500_acc.c 默认 .config 配置编译了 mpu6550 …

Android JecPack组件之LifeCycles 使用详解

一、背景 LifeCycle 是一个可以感知宿主生命周期变化的组件。常见的宿主包括 Activity/Fragment、Service 和 Application。LifeCycle 会持有宿主的生命周期状态的信息,当宿主生命周期发生变化时,会通知监听宿主的观察者。 LifeCycle 的出现主要是为了…

机器学习(2):线性回归Python实现

1 概念回顾 1.1 模型假设 线性回归模型假设因变量y yy与自变量x xx之间的关系可以用以下线性方程表示: y β 0 β 1 ⋅ X 1 β 2 ⋅ X 2 … β n ⋅ X n ε y 是因变量 (待预测值);X1, X2, ... Xn 是自变量(特征)β0, β1,…

2025.1.15——二、字符型注入

一、基本操作:整理已知信息,本题为字符型注入 二、解题步骤 step 1:确认为字符型注入 键入: 1 键入:1 and 12 # 发现报错 键入:1 and 11 # 未发现报错 所以确认为字符型注入 step 2:查询…

4、dockerfile实现lnmp和elk

dockerfile实现lnmp 使用dockerfile n:nginx,172.111.0.10 m:mysql,172.111.0.20 p:php,172.111.0.30 安装配置nginx 1、准备好nginx和wordpress安装包 2、配置dockerfile 3、配置nginx主配置文件ngin…

金融项目实战 05|Python实现接口自动化——登录接口

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

Flink链接Kafka

一、基于 Flink 的 Kafka 消息生产者 Kafka 生产者的创建与配置: 代码通过 FlinkKafkaProducer 创建 Kafka 生产者,用于向 Kafka 主题发送消息。Flink 执行环境的配置: 配置了 Flink 的检查点机制,确保消息的可靠性,支…

基于国产麒麟操作系统,通过Kubeadm离线部署Kubernetes 1.28版本

文章目录 前言一、环境准备1.主机操作系统说明2.主机硬件配置3.ansible-playbook相关目录准备4.下载离线部署包4.1. 下载kubeclt、kubeam、kubelet RPM包4.2. 下载docker安装包4.3. 下载containerd安装包4.4. 镜像包下载 二、部署流程三、部署过程1.修改hosts文件2.部署单maste…