还在因为版本不一致重装node吗,用它试试

news2024/11/19 14:36:56

一、卸载nodejs

首先卸载已安装的nodejs,总体分三步

1)打开控制面板,卸载nodejs

2)打开计算机->高级->环境变量,删除path中nodejs相关的配置

3)打开nodejs安装目录,整体删除

打开cmd,输入以下命令,出现下图即可

node -v

image-20231221171435201

二、安装nvm

在日常开发工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换。

下载地址:https://github.com/coreybutler/nvm-windows/releases

image-20231221171527149

下载完之后,解压,点击.exe文件进行安装

image-20231221171708435

接受协议后,下一步,选择nvm安装位置

image-20231221171823025

下一步,选择nodejs的位置

image-20231221171933257

然后点击安装即可

打开nvm安装位置,修改settings.txt

image-20231221172212633

在后面添加如下两行配置

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

image-20231221172333177

检查环境变量,不用配置,安装时已经配置好了

看如下两处是否一致

此电脑右键->属性->高级系统设置->环境变量

image-20231221172651197

三、测试nvm

打开cmd命令提示符,输入nvm -v

image-20231221172801830

四、安装及配置nodejs

4.1 安装nodejs,以14.21.3为例
nvm install 14.21.3

image-20231221195105611

此时使用nodejs已经安装完了,使用命令如下该版本

nvm use 14.21.3

image-20231221195302604

使用如下命令进行测试

node -v
npm -v
4.2 配置全局缓存路径和全局安装路径

在nodejs安装目录下创建两个目录node_globel、node_cache作为全局缓存路径和全局安装路径,默认在C盘

image-20231221195911908

设置全局缓存路径和全局安装路径并查看

# 全局安装路径
npm config set prefix "D:\software\nodejs\node_global"
# 全局缓存路径
npm config set cache "D:\software\nodejs\node_cache"
# 配置完后请确认配置成功
npm config ls

image-20231221200110174

4.3 配置镜像加速

查看当前的源

npm config get registry

image-20231221200304967

配置淘宝镜像

npm config set registry https://registry.npm.taobao.org

配置成功后查看

image-20231221200415368

4.4 配置nodejs环境变量

image-20231221200617315

4.5 npm全局安装yarn并测试
npm install -g yarn
yarn -v

image-20231221202748540

注意:配置好环境变量之后一定要重启命令窗口

五、测试node版本切换

安装16.20.1版本

nvm install 16.20.1

查看

image-20231221202922988

切换16.20.1版本

image-20231221202958448

搞定收工

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

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

相关文章

浅谈 Raft 分布式一致性协议|图解 Raft

前言 大家好,这里是白泽。本文是一年多前参加字节训练营针对 Raft 自我整理的笔记。 本篇文章将模拟一个KV数据读写服务,从提供单一节点读写服务,到结合分布式一致性协议(Raft)后,逐步扩展为一个分布式的…

SpringBoot原理(@Conditional)—三种自动配置方法、步骤详解

简介:我们一直在说基于SpringBoot开发简单、快捷,但是总是不太清楚为什么会有这样的便利,对于开发人员来说我们不仅要知其然,还要知其所以然,这篇文章就是说明SpringBoot的底层原理,让读者对SpringBoot底层…

瑞_Java开发手册_(二)异常日志

文章目录 异常日志的意义(一) 错误码(二) 异常处理(三) 日志规约附:错误码列表 🙊前言:本文章为瑞_系列专栏之《Java开发手册》的异常日志篇,本篇章主要介绍异常日志的错误码、异常处理、日志规约。由于博主是从阿里的《Java开发手…

逆水行舟 不进则退

目录 一、前言 二、2023年度总结 三、2024展望未来 一、前言 这是我从工作以来到现在最喜欢的一句话,我想把这句话送给自己也想送给大家。 2019年7月实习到现在已经过去了四年多,进入2024年也迎来了我工作生涯的第五个年头。 在这个行业里&#xff…

宠物空气净化器哪个牌子好?实惠的猫用空气净化器牌子推荐

对于养猫的朋友来说,猫咪掉毛绝对是一个让人头痛的问题。猫毛和皮屑会飘散在空气中,不仅会遍布全屋的各个角落,而且打扫起来也麻烦,特别是一些清理不了的猫毛,甚至还可能引起人的过敏反应,例如咳嗽和哮喘。…

PXIe-6396国产替代,8路AI(18位,14 MS/s/ch),2路A​O,24路DIO,PXI多功能I/O模块

PXIe,8路AI(18位,14 MS/s/ch),2路A​O,24路DIO,PXI多功能I/O模块 PXIe-6396是一款同步采样的多功能DAQ设备。该模块提供了模拟 I/O、数字I/O、四个32位计数器和模拟和数字触发。板载NI-STC3定时…

RT-Thread GD32F4xx实现SD卡热插拔检测功能

GD32F470移植RT-Thread操作系统添加SD卡功能,增加SD卡热插拔检测 一、RT-Thread移植sd卡功能二、实现SD卡热插拔检测原理三、软件实现过程四、延展之ASSERT ERROR,即RT-Thread断言错误五、延展之STM32 SD卡热插拔检测六、结束语 一、RT-Thread移植sd卡功…

Java研学-过滤与监听

一 过滤器 Filter 1 介绍 Java Web 组件之一(Servlet 的功能),可改变一个request和修改一个response。Filter不是Servlet,不能产生一个response,它是在一个request 到达Servlet之前预处理 request,也可以在response离开Servlet 后…

新一代数字原住民:市场痛点与“繁”思维应对之道

随着科技的迅速发展,尤其是互联网的普及,新一代数字原住民经营者已经逐渐成为市场的主力军。不同于传统的消费者,有着独特的消费习惯和心理需求。企业要在这激烈的市场竞争中获得优势,深入了解这一群体的特征和心理、行为&#xf…

【EMC专题】浪涌的成因与ICE 61000-4-5标准

什么是浪涌? 浪涌是一种无法预料的瞬态电压或电流尖峰,由附近的电子产品或是环境导致。 了解浪涌非常重要,因为浪涌有可能会导致设备的电气过应力损坏,造成系统故障等。 对于系统设计来说,重要的一点是我们如果无法控制浪涌的产生,那么只能通过将瞬态峰值电流导入到地,…

Pyside6/PyQt6中的QTimer类:轻松实现定时任务

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📝 参数说明📝 常用方法⚓️ 相关链接 ⚓️📖 介绍 📖 在PySide/PyQt框架中,QTimer是一个核心类,主要用于在指定的间隔时间后触发某些事件。QTimer为开发者提供了一种处理和调度重复或单次动作的简便方式。 …

CSP网络结构实战 - 降低计算量的特征融合方式

CSP网络结构实战 - 降低计算量的特征融合方式 CSP网络结构实战 - 降低计算量的特征融合方式0. 引言1. CSP网络结构简介1.1 核心思想1.2 解决的问题 2. 实验验证2.1 CSP网络模型构建2.2 数据读取与预处理2.3 模型训练与验证 3. 对比实验4. 结果与总结 CSP网络结构实战 - 降低计算…

change事件传递多个参数

1.传递value页面参数 change"handleChange($event,123)" 2.传递选中的keyvalue或是选中的item 我用的是a-auto-complete,试验了用a-select也可以 就是在option里面,:value"JSON.stringify(d)" 然后在eval(( value ))转化就可…

Python中如何简化if...else...语句

一、引言 我们通常在Python中采用if...else..语句对结果进行判断,根据条件来返回不同的结果,如下面的例子。这段代码是一个简单的Python代码片段,让用户输入姓名并将其赋值给变量user_input。我们能不能把这几行代码进行简化,优化…

CTFhub-HTTP响应包源代码查看

CTFhub-Web-Web前置技能-“HTTP响应包源代码查看” 题目分析 页面空白,想到flag也许在源代码中 解题过程 F12,在element中,看到html代码,在其body中找到flag

对闭包的理解

概念: 一个函数对周围状态的引用捆绑在一起,闭包让开发者可以从内部函数访问外部 函数的作用域 简单理解:闭包 内层函数 外层函数的变量 一个函数对周围状态的引用捆绑在一起,闭包让开发者可以从内部函数访问外部 函数的作…

10.9.2 std::function 存储函数对象 Page184

41行,pending只是inc的复制品,所以43,44行,不会改变inc()的值 demo_function2()的运行结果: 59行,pending是inc的引用,所以61,62行将会改变inc()的值

如何在Windows 10/11的防火墙中禁止和允许某个应用程序,这里提供详细步骤

想阻止应用程序访问互联网吗?以下是如何通过简单的步骤阻止和允许Windows防火墙中的程序。​ 一般来说,大多数用户永远不需要担心应用程序访问互联网。然而,在某些情况下,你需要限制应用程序访问互联网。 例如,有问题…

webstorm最新版 激活 成功了

使用webstorm开发工具 很完美,第一次用webstorm IDE 开发工具就完美的激活了,你也不妨试试 链接地址:http://mano100.cn/thread-1942-1-1.html 激活后如下

Django数据库选移的preserve_default=False是什么意思?

有下面的迁移命令: migrations.AddField(model_namemovie,namemov_group,fieldmodels.CharField(defaultdjango.utils.timezone.now, max_length30),preserve_defaultFalse,),迁移命令中的preserve_defaultFalse是什么意思呢? 答:如果模型定…