gnvm切换node版本号
1. gnvm下载官网
GNVM - Node.js version manager on Windows by Go
2. 安装
2.1 不存在 Node.js 环境
下载并解压缩 gnvm.exe 保存到任意文件夹,并将此文件夹加入到环境变量 Path。
2.2 存在 Node.js 环境
下载并解压缩 gnvm.exe 保存到 Node.js 所在的文件夹。
2.3 查看 Node.js 文件地址
C:\Users\my_name>where node
C:\Program Files\nodejs\node.exe
3. 使用 gnvm
3.1 查看所有命令及说明
C:\Users\my_name>gnvm -h
Usage of gnvm:Usage:gnvm [flags]gnvm [command]Available Commands:config Setter and getter .gnvmrc fileuse Use any the local already exists of Node.js versionls Show all [local] [remote] Node.js versioninstall Install any Node.js versionuninstall Uninstall local Node.js version and npmupdate Update Node.js latest versionnpm NPM version managementsession Set any local Node.js version to session Node.js versionsearch Search and Print Node.js version detail usage wildcard mode or regexp modenode-version Show [global] [latest] Node.js versionreg Add config property [noderoot] to Environment variable [NODE_HOME]version Print GNVM version numberhelp [command] Help about any commandAvailable Flags:--help=false: help for gnvmUse "gnvm help [command]" for more information about that command.
3.2 安装指定 node 版本
C:\Users\my_name>gnvm install 22.8.0
Start download Node.js versions [22.8.0].
22.8.0: 100% [==================================================>] 3s
--------
End download.
3.3 查看已下载的nodejs版本
v20.5.0 -- global 为当前使用的node版本
C:\Users\my_name>gnvm ls
Notice: gnvm.exe root is C:\Program Files\nodejs\\
v16.13.1
v16.13.1 -- x86
v20.5.0 -- global
v20.5.0 -- x86
v22.8.0
3.4 切换 node.js 版本(切换时不能运行项目)
C:\Users\my_name>gnvm use 20.5.0
Set success, global Node.js version is 20.5.0.# 查看node版本
C:\Users\my_name>node -v
v20.5.0
3.5 搜索当前可安装的node和npm版本(两者成对应关系)
C:\Users\my_name>gnvm search *.*.*
Search Node.js version rules [*.*.*] from http://npm.taobao.org/mirrors/node/index.json, please wait.
Error: 'gnvm search' get url http://npm.taobao.org/mirrors/node/index.json error, Error: Error: util/print.go an error has occurred. Error: interface conversion: interface is curl.CurlError, not string
发现报错,查不出来
3.5.1 尝试更换为淘宝镜像地址
# 尝试更换为淘宝镜像地址
C:\Users\my_name>gnvm config registry TAOBAO
Set success, registry new value is http://npm.taobao.org/mirrors/node/C:\Users\my_name>npm config get registry
https://registry.npmmirror.com/# 还是查不出来
C:\Users\my_name>gnvm search *.*.*
Search Node.js version rules [*.*.*] from http://npm.taobao.org/mirrors/node/index.json, please wait.
Error: 'gnvm search' get url http://npm.taobao.org/mirrors/node/index.json error, Error: Error: util/print.go an error has occurred. Error: interface conversion: interface is curl.CurlError, not string
3.5.2 如果淘宝镜像出现问题,那么更换默认地址
C:\Users\14249>gnvm config registry DEFAULT
Set success, registry new value is http://nodejs.org/dist/C:\Users\14249>npm config get registry
https://registry.npmmirror.com/C:\Users\14249>gnvm search *.*.*
Search Node.js version rules [*.*.*] from http://nodejs.org/dist/index.json, please wait.
+--------------------------------------------------+
| No. date node ver exec npm ver |
+--------------------------------------------------+1 2025-03-13 23.10.0 x86 x64 10.9.22 2025-02-26 23.9.0 x86 x64 10.9.23 2025-02-13 23.8.0 x86 x64 10.9.24 2025-01-30 23.7.0 x86 x64 10.9.25 2025-01-21 23.6.1 x86 x64 10.9.26 2025-01-07 23.6.0 x86 x64 10.9.27 2024-12-19 23.5.0 x86 x64 10.9.28 2024-12-10 23.4.0 x86 x64 10.9.29 2024-11-20 23.3.0 x86 x64 10.9.010 2024-11-11 23.2.0 x86 x64 10.9.011 2024-10-24 23.1.0 x86 x64 10.9.0
3.6 查看指定版本的node与npm对应版本
C:\Users\my_name>gnvm search 20.*.*
Search Node.js version rules [20.*.*] from http://nodejs.org/dist/index.json, please wait.
+--------------------------------------------------+
| No. date node ver exec npm ver |
+--------------------------------------------------+1 2025-03-13 20.19.0 x86 x64 10.8.22 2025-02-10 20.18.3 x86 x64 10.8.23 2025-01-21 20.18.2 x86 x64 10.8.24 2024-11-20 20.18.1 x86 x64 10.8.25 2024-10-03 20.18.0 x86 x64 10.8.26 2024-08-21 20.17.0 x86 x64 10.8.27 2024-07-24 20.16.0 x86 x64 10.8.18 2024-07-08 20.15.1 x86 x64 10.7.09 2024-06-20 20.15.0 x86 x64 10.7.010 2024-05-28 20.14.0 x86 x64 10.7.011 2024-05-09 20.13.1 x86 x64 10.5.212 2024-05-07 20.13.0 x86 x64 10.5.213 2024-04-10 20.12.2 x86 x64 10.5.014 2024-04-03 20.12.1 x86 x64 10.5.015 2024-03-26 20.12.0 x86 x64 10.5.016 2024-02-13 20.11.1 x86 x64 10.2.417 2024-01-09 20.11.0 x86 x64 10.2.418 2023-11-22 20.10.0 x86 x64 10.2.319 2023-10-24 20.9.0 x86 x64 10.1.020 2023-10-13 20.8.1 x86 x64 10.1.021 2023-09-28 20.8.0 x86 x64 10.1.022 2023-09-18 20.7.0 x86 x64 10.1.023 2023-09-07 20.6.1 x86 x64 9.8.124 2023-08-23 20.6.0 x86 x64 9.8.125 2023-08-09 20.5.1 x86 x64 9.8.026 2023-07-19 20.5.0 x86 x64 9.8.027 2023-07-04 20.4.0 x86 x64 9.7.228 2023-06-20 20.3.1 x86 x64 9.6.729 2023-06-08 20.3.0 x86 x64 9.6.730 2023-05-16 20.2.0 x86 x64 9.6.631 2023-05-03 20.1.0 x86 x64 9.6.432 2023-04-17 20.0.0 x86 x64 9.6.4
+--------------------------------------------------+
3.7 查看具体版本的node与npm对应版本
C:\Users\my_name>gnvm search 20.6.1
Search Node.js version rules [20.6.1] from http://nodejs.org/dist/index.json, please wait.
+--------------------------------------------------+
| No. date node ver exec npm ver |
+--------------------------------------------------+1 2023-09-07 20.6.1 x86 x64 9.8.1
+--------------------------------------------------+
4. 切换 node 版本后项目无法运行

4.1 原因
网上查询到原因为node.js 的版本问题
因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错。
1. 推荐:修改package.json,在相关构建命令之前加入SET NODE_OPTIONS=--openssl-legacy-provider
"scripts": {"serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve","build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
},
这种可以一劳永逸,以后直接通过npm执行scripts里面的命令即可。不管是项目迭代,还是团队开发,这种都比较有效。
2. 当次运行的命令窗口有效:在你当前文件的cmd命令窗口输入:SET NODE_OPTIONS=--openssl-legacy-provider, 回车后输入 npm 运行命令

这种做法,就是每次运行都要输入SET NODE_OPTIONS=--openssl-legacy-provider,来告诉nodejs,别使用最新的SSL3.0,还是使用以前旧版本的。
3.就是nodejs版本回退到16版本,这样就可以直接运行了。
相关文章:
gnvm切换node版本号
1. gnvm下载官网 GNVM - Node.js version manager on Windows by Go 2. 安装 2.1 不存在 Node.js 环境 下载并解压缩 gnvm.exe 保存到任意文件夹,并将此文件夹加入到环境变量 Path。 2.2 存在 Node.js 环境 下载并解压缩 gnvm.exe 保存到 Node.js 所在的文件夹。 2.…...
PyTorch 深度学习实战(29):目标检测与 YOLOv12 实战
在上一篇文章中,我们探讨了对比学习与自监督表示学习。本文将深入计算机视觉的核心任务之一——目标检测,重点介绍最新的 YOLOv12 (You Only Look Once v12) 算法。我们将使用 PyTorch 实现 YOLOv12 模型,并在 COCO 数据集上进行训练和评估。…...
Python爬虫:开启数据抓取的奇幻之旅(一)
目录 一、爬虫初印象:揭开神秘面纱 二、工欲善其事:前期准备 (一)Python 环境搭建 1.下载 Python 安装包: 2.运行安装程序: 3.配置环境变量(若自动添加失败)&#x…...
python下载m3u8格式视频
一、安装 m3u8库 pip install requests pip install requests m3u8 二、编码实现 import os import re import requests import subprocess# 下载ts文件 def down_ts_file(base_url, m3u8_url, download_dir):# 从m3u8文件中获取所有ts的分片名称信息response requests.get…...
【区块链安全 | 第五篇】DeFi概念详解
文章目录 DeFi1. DeFi 生态概览2. 去中心化交易所(DEX)2.1 AMM(自动做市商)模型2.2 订单簿模式(现货交易) 3. 借贷协议3.1 Aave3.2 使用闪电贷(Flash Loan) 4. 稳定币(St…...
【初探数据结构】归并排序与计数排序的序曲
💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对数据结构感…...
基于ruoyi快速开发平台搭建----超市仓库管理(修改记录1)
一、数据库的设计一定注意不要用关键字 数据库是同学设计的,但是在实践过程中,发现,生成的代码一直报错,结果发现数据库里面商品表里面的商品类别竟然设置成class, 注意:: class 是 Java 中的关键字&…...
《AI加持,SQL Server预测性维护全攻略》
在数字化时代,数据就是企业的生命线,而SQL Server作为一款应用广泛的关系型数据库管理系统,承载着企业海量的数据资产。但数据库运行过程中,故障就像隐藏在暗处的“定时炸弹”,随时可能引发数据丢失、业务中断等严重后…...
Java基础——面向对象
1.抽象Abstract:抽象类和抽象方法; 抽象类:不完整的类,就是抽象类:abstract class 类名; 抽象方法:只有声明,没有实现的方法; abstract 返回值类型 方法名(参数&#…...
Springboot学习笔记3.20
目录 1.实战篇第一课 我们将会在本次实战中学习到哪些知识点? 开发模式和环境搭建: 注册接口 1.Lombok 2.开发流程 1.controller层,这个层会指明访问路径和要执行的逻辑: 2.我们把返回结果根据接口文档包装成一个类result&a…...
Ubuntu和Windows实现文件互传
1.开启Ubuntu下的FTP服务: (1)终端输入: sudo apt-get install vsftpd(2)安装完成后: 终端输入: /etc 是 Linux 系统的全局配置文件目录,存储系统和应用程序的配置信息…...
java面向对象从入门到入土
面向对象进阶 (写程序的套路) 面向:拿,找 对象:能干活的东西 面向对象编程:拿东西过来做对应的事情 (写程序的套路) 面向:拿,找 对象:能干活的东西 面向对象编程:拿东西过来做对应的事情 重点学习:学习已有对象并使用,学习如何自己设计对象并使用 设计对…...
linux ACL权限控制之用户权限控制程序设计
linux中的ACL(Access Control List,访问控制列表)是一种比传统UNIX权限更细粒度的权限控制机制,允许为文件和目录设置更为具体的用户和组权限。本文介绍使用acl命令和程序api对文件进行更精细的用户权限控制。 1. 命令行示例 使…...
Java多线程与JConsole实践:从线程状态到性能优化!!!
目录 一、前言二、JConsole 使用教程二、线程的基本状态2.1新建状态(New)2.2就绪状态(Ready)2.3运行状态(Running)2.4 阻塞状态(Blocked)2.5. 等待状态(Waitingÿ…...
从入门到精通:SQL注入防御与攻防实战——红队如何突破,蓝队如何应对!
引言:为什么SQL注入攻击依然如此强大? SQL注入(SQL Injection)是最古老且最常见的Web应用漏洞之一。尽管很多公司和组织都已经采取了WAF、防火墙、数据库隔离等防护措施,但SQL注入依然在许多情况下能够突破防线&#…...
Stable Diffusion vue本地api接口对接,模型切换, ai功能集成开源项目 ollama-chat-ui-vue
1.开启Stable Diffusion的api服务 编辑webui-user.bat 添加 –api 开启api服务,然后保存启动就可以了 2.api 文档地址 http://127.0.0.1:7860/docs3. 文生图 接口 地址 /sdapi/v1/txt2img //post 请求入参 {enable_hr: false, // 开启高清hrdenoising_stre…...
缓存使用纪要
一、本地缓存:Caffeine 1、简介 Caffeine是一种高性能、高命中率、内存占用低的本地缓存库,简单来说它是 Guava Cache 的优化加强版,是当下最流行、最佳(最优)缓存框架。 Spring5 即将放弃掉 Guava Cache 作为缓存机…...
第十四届蓝桥杯真题(PWM输出)
一.LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 二.按键 按键配置,由原理图按键所对引脚要GPIO_Input 生成代码,在文件夹中添加code文件夹&#…...
【Qt】ffmpeg编码—存储(H264)
目录 一、编码分析 1.解码线程: 编辑2.编码线程: 编辑 编辑 二、ffmpeg编码 1.注册所有组件 2.编码初始化函数 (2)打开视频流 4.查找编码器 5. 写文件头信息,写到formatContex中 6.发送一帧数据给编码器…...
Webview详解(下)
第三阶段:性能优化 加载速度优化 缓存策略 缓存策略可以显著减少网络请求,提升页面加载速度。常用的缓存策略包括 HTTP 缓存和本地资源预加载。 1. HTTP 缓存 HTTP 缓存利用 HTTP 协议中的缓存机制(如 Cache-Control、ETag 等࿰…...
【MySQL基础-16】MySQL DELETE语句:深入理解与应用实践
1. DELETE语句基础:数据删除的艺术 在数据库管理中,DELETE语句是维护数据完整性和清理过期信息的关键工具。与日常生活中的"删除"不同,数据库中的删除操作需要更加谨慎和精确,因为数据一旦删除,恢复可能非常…...
相对位置嵌入和旋转位置编码
1. 相对位置嵌入:给注意力机制加“人际关系记忆” 像班级座位表 想象全班同学(序列的各个元素)坐成一个圈,老师(模型)要记住每个人之间的相对位置: 传统方法:老师给每个座位贴绝对…...
Unity编辑器功能及拓展(1) —特殊的Editor文件夹
Unity中的Editor文件夹是一个具有特殊用途的目录,主要用于存放与编辑器扩展功能相关的脚本和资源。 一.纠缠不清的UnityEditor 我们Unity中进行游戏构建时,我们经常遇到关于UnityEditor相关命名空间丢失的报错,这时候,只得将报错…...
REC一些操作解法
一.Linux命令长度突破 1.源码如下 <?php $param $_REQUEST[param];if ( strlen($param) < 8 ) {echo shell_exec($param); } 2.源码分析 echo执行函数,$_REQUEST可以接post、get、cookie传参 3.破题思路 源码中对参数长度做了限制,小于8位&a…...
powershell7.5.0不支持conda的问题
经历:这周手欠使用vscode的powershell时提示我更新,我就更新了,更新完激活不了conda环境了,查询了半天是powershell最新版7.5.0与目前conda25.1.1以前的版本不支持的问题。 问题环境:powershell版本>7.5.0ÿ…...
Android Jetpack学习总结(源码级理解)
ViewModel 和 LiveData 是 Android Jetpack 组件库中的两个核心组件,它们能帮助开发者更有效地管理 UI 相关的数据,并且能够在配置变更(如屏幕旋转)时保存和恢复 UI 数据。 ViewModel作用 瞬态数据丢失的恢复,比如横竖…...
Unity中UDP异步通信常用API使用
Begin开头的方法 BeginSendTo BeginSendTo 是 UdpClient 类中的一个重要方法,用于开始一个异步操作来发送 UDP 数据报到指定的远程端点 public IAsyncResult BeginSendTo(byte[] datagram,int bytes,IPEndPoint endPoint,AsyncCallback requestCallback,object s…...
解决Dify:failed to init dify plugin db问题
Dify最新版本1.1.3(langgenius/dify: Dify is an open-source LLM app development platform. Difys intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features and more, letting you quickly go from prototy…...
[AI绘图] ComfyUI 中自定义节点插件安装方法
ComfyUI 是一个强大的 AI 图像生成工具,支持自定义节点插件扩展其功能。本文介绍 ComfyUI 中安装自定义节点插件的三种方法,包括 Git Clone 方式、插件管理器安装方式,以及手动解压 ZIP 文件的方法,并分析它们的优缺点。 1. Git Clone 方法 使用 git clone 是最稳定且推荐…...
【机械视觉】C#+VisionPro联合编程———【六、visionPro连接工业相机设备】
【机械视觉】C#VisionPro联合编程———【六、visionPro连接工业相机设备】 目录 【机械视觉】C#VisionPro联合编程———【六、visionPro连接工业相机设备】 前言: 连接步骤说明 一. 硬件连接 支持的相机接口类型: 连接步骤 2. 软件配置 Visio…...
