nvm工具解决nodejs版本切换问题

常见版本问题

npm启动vite项目报错,信息如下

 npm run dev> my-vue-app@0.0.0 dev D:\data\code\document-assistant-web
> vitefile:///D:/data/code/document-assistant-web/node_modules/vite/bin/vite.js:7await import('source-map-support').then((r) => r.default.install())^^^^^SyntaxError: Unexpected reserved wordat Loader.moduleStrategy (internal/modules/esm/translators.js:140:18)at async link (internal/modules/esm/module_job.js:42:21)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! my-vue-app@0.0.0 dev: `vite`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-vue-app@0.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\admin\AppData\Roaming\npm-cache\_logs\2023-11-13T09_54_57_551Z-debug.log

根据提示信息推测大概率是版本兼容问题,最简单快速的解决方式就是卸载换新版本安装。

但是我电脑上又需要低版本和高版本都可用。
经查资料可知在nodejs环境中有nvm工具能够解决这个环境切换的问题,可一劳永逸。

使用nvm工具快速解决版本切换问题

当前release版本最新的是1.1.11,可去https://github.com/coreybutler/nvm-windows下载,根据所需下载对应的文件。这里我选用最简单的exe
在这里插入图片描述
双击安装,在选择nvm自身的安装路径之后,还有一部是选择使用的nodejs的安装位置。

默认安装路径是在 C:\Users\admin\AppData\Roaming\nvm,这里我改为D:\Users\admin\AppData\Roaming\nvm,记住安装位置,在后文中有用

在这里插入图片描述
如果本地已经有安装在用着的nodejs,那么也可以选择加入此版本控制
在这里插入图片描述
安装后,新打开一个cmd窗口。

! 注意,环境变量的设置一般在新的窗口环境中才会生效。
如果是用的其它ide,如vscode工具的终端,需要将vscode的所有窗口全部关闭再重新打开方可使用此命令。

可先查看本地可用的nodejs版本

C:\Users\admin>nvm ls* 18.18.0 (Currently using 64-bit executable)

安装低版本nodejs

nvm install 12.0.1

如果报错,

> nvm install v12.9.1Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt.Get "https://nodejs.org/dist/latest/SHASUMS256.txt": net/http: TLS handshake timeout

可知是网络问题,从国外此网站下载文件连接超时。
打开nvm安装路径下的settings.txt
追加两行指定默认镜像地址为国内淘宝镜像

node_mirror:npm.taobao.org/mirrors/node/
npm_mirror:npm.taobao.org/mirrors/npm/

保存后再次执行安装即可

> nvm install v12.9.1
Downloading node.js version 12.9.1 (64-bit)... 
Complete
Creating d:\Users\admin\AppData\Roaming\nvm\tempDownloading npm version 6.10.2... Complete
Installing npm v6.10.2...Installation complete. If you want to use this version, typenvm use 12.9.1

后续就可以在不同的版本之间通过use参数进行node和npm的版本更换了。

文件位置再探

实际上D:\Program Files\nodejs目录只是一个快捷方式,指向的位置是在nvm安装路径下,版本切换就是更改的这个软链接。
在这里插入图片描述

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

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

相关文章

国际阿里云:Windows实例中数据恢复教程!!!

在处理磁盘相关问题时,您可能会碰到操作系统中数据盘分区丢失的情况。本文介绍了Windows系统下常见的数据盘分区丢失的问题以及对应的处理方法,同时提供了使用云盘的常见误区以及最佳实践,避免可能的数据丢失风险。 前提条件 已注册阿里云账…

两数之和问题

题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺…

Java 简单实现一个 UDP 回显服务器

文章目录 UDP 服务端UDP 客户端实现效果UDP 服务端(实现字典功能)总结 UDP 服务端 package network;import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException;public class UdpEchoServer {private Da…

监控和数据采集软件架构和详细设计

介绍 监控和数据采集软件通过提供实时监控、数据收集和分析功能,在各个行业中发挥着至关重要的作用。这些软件应用程序可帮助企业收集有价值的见解、优化流程并做出明智的决策。在本文中,我们将探讨监测和数据采集软件的软件架构、编程技术和详细设计规范…

在 Vue3 中使用 mitt 进行组件通信

npm 包地址 mitt 是一个轻量级的 JavaScript 事件触发器, 只有200b。有基本的事件触发、订阅和取消订阅功能,还支持用命名空间来进行更高级的事件处理。 功能特点: Microscopic —— weighs less than 200 bytes gzippedUseful —— a wil…

【Liunx】DHCP服务

【Liunx】DHCP服务 DHCP概述A.安装dhcpB.查看配置文件C.修改配置文件 DHCP概述 DHCP(Dynamic Host Configuration Protocol)i动态主机配置协议 DHCP是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议。 口使用DHCP服务的…

在PyTorch中使用CUDA, pytorch与cuda不同版本对应安装指南,查看CUDA版本,安装对应版本pytorch

目录 1 查看本机CUDA版本 2 查看对应CUDA的对应pytorch版本安装 3 用pip 安装 4 用conda安装 5 验证安装 在PyTorch中使用CUDA,根据你的具体环境和需求调整版本号,确保安装的PyTorch版本与你的CUDA版本兼容。 在PyTorch中使用CUDA,你需…

StackExchange.Redis 高并发下timeout超时问题如何解决?

查看服务端程序负载还行,根据打印的连接看到一知半懂,按GitHub的issue提示,这2个Busy的数量不能比Min的大,即要提示Min的数值; 的各个字段: Timeout performing EXEC (1000ms): 表示在执行一个事务(MULTI..…

Django ModelSerializer 实现自定义验证详解

随着 Web 开发的日益复杂化,对数据验证的需求也日益增加。Django REST framework 提供了一套强大的、灵活的验证系统,帮助开发者轻松处理各种复杂情况。本文将重点探讨 Django ModelSerializer 中如何实现自定义验证。 1. 简介 Django ModelSerializer…

JVM源码剖析之软、弱、虚引用的处理细节

目录 写在前面: 源码剖析: Java层面: JVM层面: 使用危险点: 总结: 版本信息: jdk版本:jdk8u40 垃圾回收器:Serial new/old 写在前面: 不同的垃圾回收…

8255 boot介绍及bring up经验分享

这篇文章会简单的介绍8255的启动流程,然后着重介绍8255在实际项目中新硬件上的bring up工作,可以给大家做些参考。 8255 boot介绍 下面这些信息来自文档:《QAM8255P IVI Boot and CoreBSP Architecture Technical Overview》 80-42847-11 R…

2023年开发语言和数据库排行

2023年开发语言和数据库排行 一、开发语言相关1. Python1.1 Python优点1.2 Python缺点1.3 Python应用领域 2. C 语言2.1 C 语言优点2.2 C 语言缺点2.3 C语言应用领域 3. Java3.1 Java 优点3.2 Java缺点3.3 Java应用场景 4. C4.1 C 优点4.2 C 缺点4.3 C 应用场景 5. C#5.1 C# 优…

模拟退火算法MATLAB实现

介绍 算法试图随着控制参数T的降低,使目标函 数值f(内能E)也逐渐降低,直至趋于全局最 小值(退火中低温时的最低能量状态),算法 工作过程就像固体退火过程一样。 Metropolis准则——–以概率接受…

ROS话题(Topic)通信:通信模型、Hello World与拓展

文章目录 一、话题通讯模型二、Topic Hello World2.1 创建并初始化功能包2.2 确定Topic名称及消息格式2.3 实现发布者与订阅者(C版)2.4 实现发布者与订阅者(Python版)2.5 关于Topic Hello World的注意 拓展1:devel下其…

预览PDF并显示当前页数

这里写目录标题 步骤实例实例效果图 步骤 1.安装依赖 npm install --save vue-pdf2.在需要的页面&#xff0c;引入插件 import pdf from vue-pdf3.使用 单页pdf可以直接使用 <pdf :src"获取到的pdf地址"></pdf>多页pdf通过循环实现 html标签部分 &l…

Banana Pi BPI-M5 Boot Log 导出说明

准备&#xff1a; Preparation: 1、 一块bpi的开发板&#xff0c;一根ttl的串口线&#xff0c;以及一张烧录好镜像的sd/tf卡&#xff08;烧录到eMMC也行&#xff09;。 1. A BPI development board, a TTL serial port cable, and an SD/TF card with a burned image (it ca…

高并发架构设计(三大利器:缓存、限流和降级)

引言 高并发背景 互联网行业迅速发展&#xff0c;用户量剧增&#xff0c;系统面临巨大的并发请求压力。 软件系统有三个追求&#xff1a;高性能、高并发、高可用&#xff0c;俗称三高。三者既有区别也有联系&#xff0c;门门道道很多&#xff0c;全面讨论需要三天三夜&#…

Rust编程中的共享状态并发执行

1.共享状态并发 虽然消息传递是一个很好的处理并发的方式&#xff0c;但并不是唯一一个。另一种方式是让多个线程拥有相同的共享数据。在学习Go语言编程过程中大家应该听到过一句口号:"不要通过共享内存来通讯"。 在某种程度上&#xff0c;任何编程语言中的信道都类…

stm32超声波测距不准的解决方法(STM32 delay_us()产生1us)及stm32智能小车超声波测距代码(C语言版本)

首先要说明一下原理&#xff1a;使用stm32无法准确产生1us的时间&#xff0c;但是超声波测距一定要依赖时间&#xff0c;时间不准&#xff0c;距离一定不准&#xff0c;这是要肯定的&#xff0c;但是在不准确的情况下&#xff0c;要测量一个比较准确的时间&#xff0c;那么只能…

PHP中$_SERVER全局变量

在PHP中&#xff0c;$_SERVER 是一个全局数组变量&#xff0c;它包含了有关服务器和当前脚本的信息。$_SERVER 数组中的每个元素都是服务器环境的一个参数&#xff0c;如请求的方法、请求的 URI、客户端 IP 地址等。 PATH 系统环境变量的值&#xff0c;包含了多个目录的路径…