nvm管理多个node版本,快速来回切换node版本

前言

文章基于 windows环境 使用nvm安装多版本nodejs。
最近公司有的项目比较老需要降低node版本才能运行,由于来回进行卸载不同版本的node比较麻烦;所以需要使用node工程多版本管理,后面自己就简单捯饬了一下nvm来管理node,顺便记录一下自己的使用过程以便于后续查找。

注意:安装nvm时不能安装任何node版本(如存在请删除后再安装nvm),再检查环境变量,如果还有node.js相关也删掉,保证系统无任何node.js 残留。
卸载完之后cmd命令行输入 node -v 查看是否还能查到node信息,无的话表示删除干净。

一、卸载node

如果已经安装了node,那么在安装nvm之前,需要先卸载node,如果没有安装可以直接跳过这一步到下一步了。

删除前可查当前使用的node版本,方便后续决定使用哪个版本的node。

控制面板 -> 卸载程序 -> 卸载nodejs
为了确保彻底删除node,看下node安装目录中还有没有node文件夹,有的话一起删除。
删除以下文件夹(如果存在的话)
C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
C:\Users{User}\AppData\Roaming\npm
C:\Users{User}\AppData\Roaming\npm-cache
删除C:\Users\用户名 下的 .npmrc文件以及 .yarnrc 文件
环境变量中npm、node的所有相关统统删掉

二、nvm是什么?

nvm(node.js version management),是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具,为了解决node.js 各种版本存在不兼容现象 可以通过它可以安装和切换不同版本的node.js。【可同时在一个环境中安装多个node.js版本(和配套的npm)】

三、nvm安装

1. 官网下载 nvm 包

https://github.com/coreybutler/nvm-windows/releases
在这里插入图片描述

2. 安装 nvm-setup.exe

在这里插入图片描述
在这里插入图片描述

注意安装路径的文件夹名称不要出现中文,空格等,否则后期npm使用的时候会出现符号格式不正确问题。

继续点击 Next 就行。

小tips
安装nodejs时候默认安装的是C盘,路径也是默认的。现在想安装到D盘,但是D盘没有默认的nodejs文件夹,所以需要自己新建个nodejs文件夹。

3. 配置路径和下载镜像

安装完nvm后先不要着急安装node版本。
找到nvm安装路径 =》找到 setting.txt 文件 =》新增两行信息,配置下载源
在这里插入图片描述

node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

在这里插入图片描述

增加后如下,然后保存退出。

第一行是 nvm安装路径
第二行是 nodejs路径
第三行是 node下载镜像
第四行是 npm下载镜像

4. 检查nvm是否安装完成

win + R,调用cmd,输入nvm,出现下面这一堆就表示安装成功了。
在这里插入图片描述
如果安装不成功,查看之前自己安装的 node.js 有没有彻底删除、安装nvm过程中有没有漏掉什么,可重新卸载再安装一次nvm包。

四、使用nvm安装node版本

win + R,调用cmd

1.安装指定node.js版本

nvm install 14.16.0

2.nvm use 切换node版本。(如果报错,用管理员身份打开重新 nvm use 你指定的版本)

nvm use 14.16.0

3.安装完成后可以分别输入命令行 node -v 和 npm -v,检验node.js以及对应npm是否安装成功

在这里插入图片描述

4.nvm list 查看当前已安装的node.js版本,带*号的是正在使用的

在这里插入图片描述

5.删除某node.js版本

nvm uninstall node版本号  //例如:nvm uninstall 14.16.0)即可删除对应版本

五、修改npm默认镜像源为淘宝镜像

5.1修改npm镜像源为淘宝镜像,加快npm包的下载速度,减少发生连接错误和超时的概率。

npm config set registry https://registry.npmmirror.com

5.2检查是否设置淘宝镜像成功(会返回这个地址表示成功:https://registry.npmmirror.com)

npm config get registry

在这里插入图片描述
是因为从 2024 年1 月 22 日,淘宝原镜像域名(registry.npm.taobao.org)的 HTTPS 证书正式到期,这就导致旧的 npm 淘宝镜像在使用时出错了,所以遇到上述问题,或者还在使用旧的 npm 淘宝镜像,直接将 npm 源切换到新的源即可

// 1. 清空缓存
npm cache clean --force
// 2. 切换新源
npm config set registry https://registry.npmmirror.com

六、 环境变量配置

1. 设置系统变量和用户变量的作用是什么呢?

答:为了命令行安装包时,将包安装到自己设置的目录下。

2. 配置步骤

1)新增俩文件夹
首先创建"node_global" 和 “node_cache”两个文件夹进行全局安装的时候安装对应的库到这两个文件。
在nvm的 nodejs 安装路径 D:\opt\apps\nvm\nodejs 新建两个文件夹命名为 “node_global” 和 “node_cache”。
在这里插入图片描述

打开cmd命令行工具,输入以下两句操作(两个路径就是新建上面两个文件夹的路径,主要目的是方便后面window机器使用方便)

npm config set prefix "D:\opt\apps\nvm\node_global"
npm config set cache "D:\opt\apps\nvm\node_cache"

执行成功就无任何响应,没有异常的话,就在去到 环境变量设置处。

2)设置环境变量
我的电脑右键 =》属性 =》高级系统设置 =》系统属性(高级)=》 环境变量,进入环境变量对话框。
在这里插入图片描述

在这里插入图片描述

点击确定后配置完成。

七、测试安装全局模块

测试是否环境变量是否配置成功,在cmd窗口中输入以下指定全局安装express模块,安装成功的话表示环境变量配置成功。

npm install -g express

在这里插入图片描述

八、遇到的问题

  1. 在安装 nvm 之前没有卸载掉 node,导致 nvm 安装完之后,node和npm都不可用。所以我们在拿到一个新电脑时候最好是先下载nvm,再安装node版本。
  2. 在第一次使用nvm安装node后,记得使用 nvm use 切换下node版本,以及用 nvm on 打开nodejs版本控制,不然这时候node和npm也都不可用。
  3. 使用 淘宝镜像 https://registry.npm.taobao.org 报错的问题,因为淘宝原镜像域名(registry.npm.taobao.org)的 HTTPS 证书正式到期; npm 淘宝镜像已经切换到了registry.npmmirror.com,使用命令行重新切换就可以了 npm config set registry https://registry.npmmirror.com

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

将城市名称替换成简写

图片左边是城市全称,右边是城市简写。 现在有一句话“this is Republic of Korea,that is United States of America”,要将其中的城市全称替换成城市简写。 #"Republic of Korea"替换成 South Korea s"this is Republic of Korea,that …

C语言数据结构之链表

目录 前言 \color{maroon}{前言} 前言1.链表的概念及结构2.链表的分类3.无头单向非循环链表的实现4.带头双向循环链表的实现5.顺序表和链表的对比 前言 \color{maroon}{前言} 前言 在上一篇博客中我们提到,线性表包括顺序表和链表,顺序表在上篇博客中已…

【Java基础】23.接口

文章目录 一、接口的概念1.接口介绍2.接口与类相似点3.接口与类的区别4.接口特性5.抽象类和接口的区别 二、接口的声明三、接口的实现四、接口的继承五、接口的多继承六、标记接口 一、接口的概念 1.接口介绍 接口(英文:Interface)&#xf…

运维小技能:nacos部署(外接mysql)

文章目录 I 安装nacos(m1版本)1.1 镜像启动1.2 查看docker容器日志1.3 开启鉴权II 外接mysql的docker部署方式2.1 复制mysql-schema.sql2.2 导入mysql-schema.sqlIII 配置远程用户3.1 创建数据库远程用户3.2 查看远程用户是否有密码I 安装nacos(m1版本) docker search nacos:查…

【前端工程化指南】Git常见操作之仓库相关操作

初始化本地仓库(init) 我们可以使用git init命令在当前或指定目录中初始化一个新的本地仓库,创建.git目录并设置仓库的基本配置。初始化仓库完成后,你可以使用其他 Git 命令来进行版本控制、提交更改以及与远程仓库进行交互。 命…

3月衣物清洁行业数据概况和趋势分析:总销额环比上涨超60%!

人们日常生活离不开衣物清洁产品,同时随着生活品质得提高和消费者健康意识得增强,对于衣物清洁行业的需求量与日俱增。作为日常必备的消耗品,衣物清洁产品备受消费者关注。借此,衣物清洁行业在3月份表现出稳定的发展态势。 根据鲸…

HANA SQL消耗内存和CPU线程的限制参数

HANA再处理大数据表相关的复杂Sql时,如果没有设置Memory和CPU线程上限的话,会将HANA的资源占用殆尽,造成HANA无法响应其他Sql请求,导致表现在应用服务器上就是系统卡顿的情况。解决上述问题的办法就是按照下图设置Memory(图1&…

如何封装Vue组件并上传到npm

前言 环境准备 1.注册npm账号:npm | Home (npmjs.com) 2.保证当前环境安装了vue、webpack、node,以下工作将在该环境下进行(没有的小伙伴自行百度安装哈~) 3.一下用到的环境版本 webpack:v5.1.4node:v…

编程实践:使用C语言计算k阶常系数线性递归序列

开篇 本文的目的是使用C语言模拟k阶常系数线性递归的运算过程,题目来源为《编程珠玑》第3章【数据决定程序结构】的课后习题2。具体的题目概要和代码实现,请看下文。 问题概要 因为这种问题涉及到的数学公式不太方便打出来,我直接用我笔记的原…

c++ 二分查找

二分查找(Binary Search)是一种在有序数组中查找特定元素的高效算法。它通过不断将搜索范围减半来查找目标元素。其时间复杂度为 O(log n),这是因为每一步都将搜索范围减半,因此算法的性能非常高。 二分查找的基本思想是&#xf…

openwrt局域网配置多个IP

在局域网配置过程中,若是DHCP服务器关闭,又忘记了配置的ip,将很难访问到路由器重新进行配置。这种情况可以在路由器出厂时做一个备用ip去避免。 1.配置 以下是备用ip的配置方法,以SKYLAB的SKW99 WIFI模组为例进行说明&#xff1…

Java 网络编程之TCP(一):基于BIO

环境: jdk 17 IntelliJ IDEA 2023.1.1 (Ultimate Edition) Windows 10 专业版 22H2 TCP:面向连接的,可靠的数据传送协议 Java中的TCP网络编程,其实就是基于常用的BIO和NIO来实现的,本文先讨论BIO; BIO…

Xilinx 7系列FPGA 高性能(HP)接口与2.5V/3.3V 外设IO接口设计考虑

引言:Xilinx 7系列FPGA IO Bank分为HP Bank和HR Bank,HP IO接口电压范围为1.2V~1.8V,可以实现高性能,HR IO接口电压范围为1.2V~3.3V。当HR Bank与2.5V或者3.3V外设互联时,需要考虑接口电平的兼容性。根据性能需求、功能…

在Linux操作系统中介绍文件属性

查看文件属性,,可以使用命令lsattr 文件路径 使用命令lsattr 文件路径 查看文件属性 如上图所示,没有给文件 /etc/fstab 文件设置任何属性。 设置文件属性,,可以使用命令chattr 需要为文件加上的属性&#xff0…

葡萄书--深度学习基础

卷积神经网络 卷积神经网络具有的特性: 平移不变性(translation invariance):不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应,即为“平移不变性”。图像的平移…

DHT11实验

文章目录 11.11.2 234 DS18B20 只能检测温度 右边这几个 都能 1 1.1 数字信号输出 指 0/1使用单总线通信 1个IO口就能获取温湿度 T/H要有 模数转化(内部还有个8位单片机)电容感湿元件 白色的 还有个ic NTC测温 可能在ic内部 使用单片机内部测温 精确度不…

服务器渲染技术(JSPELJSTL)

目录 前言 一.JSP 1.基本介绍 3.page指令(常用) 4.JSP三种常用脚本 4.1 声明脚本 <%! code %> 4.2 表达式脚本 <% code %> 4.3 代码脚本 <% code %> 4.4 注释 <%-- 注释 --%> 5. JSP 内置对象 5.1 基本介绍 5.2 九个内置对象 6.JSP域对象 二…

Python 物联网入门指南(六)

原文&#xff1a;zh.annas-archive.org/md5/4fe4273add75ed738e70f3d05e428b06 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十七章&#xff1a;机器人学 101 一提到机器人&#xff0c;我们就会被科幻小说所包围。我们可能会想起动画片《杰森一家》或者电影《终结…

MySQL如何避免全表扫描?

MySQL如何避免全表扫描&#xff1f; 这篇文章解释了何时以及为什么MySQL会执行全表扫描来解析查询&#xff0c;以及如何避免在大型表上进行不必要的全表扫描。 何时会发生全表扫描 MySQL使用全表扫描&#xff08;在EXPLAIN输出中的type列显示为ALL&#xff09;来解析查询的几…

汇智知了堂晨会聚焦:NAS应用如何赋能网络安全实战

在近期汇智知了堂网络安全75班的晨会上&#xff0c;一场关于NAS应用的深入分享完美展开。学员们以饱满的热情投入到这场安全讨论中&#xff0c;共同探索网络安全的新天地。 此次分享会聚焦于NAS的应用&#xff0c;旨在帮助学员们更好地了解NAS的定义与功能&#xff0c;掌握其在…