Error: error:0308010C:digital envelope routines::unsupported

错误解决

  • 前言:
    • 一般`npm`报错解决
    • 常见的npm 和node 版本对应关系
  • 1、报错详情:
  • 2、原因分析:
  • 3、解决方案:
    • 3.1 更改系统环境变量
    • 3.2 更改项目环境变量来解决
    • 3.3 更换NodeJs版本来解决

前言:

一般npm报错解决

npm 17之后版本冲突的报错可能会表现为:

  1. ERESOLVE 错误:这通常发生在npm尝试解析项目依赖关系时,发现有冲突的版本要求。npm不知道应该安装哪个版本,因此无法继续。
  2. peer dependency 错误:这表示项目中有一个或多个包依赖于特定版本的另一个包,但安装的版本不满足要求。
    解决 npm 17 之后版本冲突的报错,你可以尝试以下几种方法:
  3. 更新 package.json 中的依赖版本号:确保你的 package.json 文件中所有依赖的版本号都是最新的,或者至少是已知兼容的版本。
  4. 使用 npm install --legacy-peer-deps 命令:这条命令会忽略 peerDependencies 的版本限制,可能会解决依赖冲突问题。
  5. 清空 node_modulespackage-lock.json 文件:删除 node_modules 文件夹和 package-lock.json 文件,然后重新运行 npm install
  6. 更换包管理器:试试看是否可以使用 yarnpnpm 来代替 npm,它们可能对解决依赖冲突有更好的效果。
  7. 检查网络连接:确保你的网络连接正常,并且可以访问 npm 的仓库。有时候,网络问题可能会导致依赖安装失败。
    如果上述方法都不能解决问题,那么可能需要检查项目中 package.json 中的依赖是否正确。如果可能,也可以考虑回退到 npm 的上一个版本,看看是否还存在相同的问题。

常见的npm 和node 版本对应关系

当使用npm 17或更高版本时,可能会遇到版本冲突的报错。这通常发生在以下情况:

当项目中的依赖项之间存在不兼容的版本时,npm无法解析依赖关系并会报错。
如果项目中存在peer dependencies,即某些包依赖于特定版本的另一个包,但安装的版本不满足要求,也会导致报错。
为了解决npm 17之后版本冲突的报错,可以尝试以下几种方法:

  1. 更新package.json中的依赖版本号:确保package.json文件中所有依赖的版本号都是最新的,或者至少是已知兼容的版本。这样可以确保安装的依赖版本之间不会发生冲突。
  2. 使用npm install --legacy-peer-deps命令:这条命令会忽略peerDependencies的版本限制,允许npm继续执行安装操作,可能会解决依赖冲突问题。
  3. 清空node_modulespackage-lock.json文件:删除node_modules文件夹和package-lock.json文件,然后重新运行npm install。这将重新安装项目的依赖项,并可能解决依赖冲突问题。
  4. 更换包管理器:尝试使用yarnpnpm作为替代包管理器,它们可能对解决依赖冲突有更好的效果。
  5. 检查网络连接:确保网络连接正常,并且可以访问npm的仓库。有时候网络问题可能会导致依赖安装失败。
    如果以上方法都不能解决问题,那么可能需要检查项目中package.json中的依赖是否正确。如果可能,也可以考虑回退到npm的上一个版本,看看是否还存在相同的问题。

VUE项目中运行npm run dev 报错。

Error: error:0308010C:digital envelope routines::unsupported

解决方案
https://www.cnblogs.com/asplover/p/17188483.html

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

1、报错详情:

69% building 2056/2057 modules 1 active E:\Shuoyun\ShuoYunSVN\项目\渠道销售管理系统\code\channel_sales-ui\node_modules\.store\zrender@5.4.0\node_modules\zrender\lib\tool\convert95% emitting CompressionPlugin ERROR  Error: error:0308010C:digital envelope routines::unsupported
Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:71:19)at Object.createHash (node:crypto:133:10)at E:\Shuoyun\ShuoYunSVN\项目\渠道销售管理系统\code\channel_sales-ui\node_modules\.store\compression-webpack-plugin@5.0.2\node_modules\compression-webpack-plugin\dist\index.js:243:42at CompressionPlugin.compress (E:\Shuoyun\ShuoYunSVN\项目\渠道销售管理系统\code\channel_sales-ui\node_modules\.store\compression-webpack-plugin@5.0.2\node_modules\compression-webpack-plugin\dist\index.js:284:9)at E:\Shuoyun\ShuoYunSVN\项目\渠道销售管理系统\code\channel_sales-ui\node_modules\.store\compression-webpack-plugin@5.0.2\node_modules\compression-webpack-plugin\dist\index.js:305:12at _next1 (eval at create (E:\Shuoyun\ShuoYunSVN\项目\渠道销售管理系统\code\channel_sales-ui\node_modules\.store\tapable@1.1.3\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:14:17)at eval (eval at create (E:\Shuoyun\ShuoYunSVN\项目\渠道销售管理系统\code\channel_sales-ui\node_modules\.store\tapable@1.1.3\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:33:1)at E:\Shuoyun\ShuoYunSVN\项目\渠道销售管理系统\code\channel_sales-ui\node_modules\.store\copy-webpack-plugin@5.1.2\node_modules\copy-webpack-plugin\dist\index.js:91:9       
PS E:\Shuoyun\ShuoYunSVN\项目\渠道销售管理系统\code\channel_sales-ui>

2、原因分析:

1、在node.js V17以前一些可以正常运行的的应用程序,但是在 V17 版本可能会抛出以下异常:
2、查看相关资料,大致的意思是 node版本在 17+版本后增加了OpenSSL3.0,对允许算法和密钥大小增加了严格的限制

node:internal/crypto/hash:67this[kHandle] = new _Hash(algorithm, xofLen);^Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:67:19)at Object.createHash (node:crypto:130:10)at module.exports.__webpack_modules__.57442.module.exports (/Users/workspace/React/umiapp/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:135907:62)at NormalModule._initBuildHash (/Users/workspace/React/umiapp/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:109317:16)at handleParseError (/Users/workspace/React/umiapp/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:109371:10)at /Users/workspace/React/umiapp/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:109403:5at /Users/workspace/React/umiapp/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:109258:12at /Users/workspace/React/umiapp/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:61157:3at iterateNormalLoaders (/Users/workspace/React/umiapp/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:60998:10)at Array.<anonymous> (/Users/workspace/React/umiapp/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:60989:4) {opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],library: 'digital envelope routines',reason: 'unsupported',code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Node.js v17.0.1
✨  Done in 1.92s.

3、解决方案:

3.1 更改系统环境变量

①Windows平台

我的电脑上右键 → 属性 → 高级系统设置 → 添加系统变量:NODE_OPTIONS = --openssl-legacy-provider

②Linux / Mac 平台

export NODE_OPTIONS=–openssl-legacy-provider

完成后,建议重新打开一个命令行窗口启动服务。

3.2 更改项目环境变量来解决

在 package.json 的 scripts 中新增:SET NODE_OPTIONS=--openssl-legacy-provider
添加前代码:

  "scripts": {"dev": "vue-cli-service serve","build:prod": "vue-cli-service build","build:stage": "vue-cli-service build --mode staging","preview": "node build/index.js --preview","lint": "eslint --ext .js,.vue src","test:unit": "jest --clearCache && vue-cli-service test:unit","test:ci": "npm run lint && npm run test:unit","svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"},

添加后代码:

  "scripts": {"dev": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve","build:prod": "vue-cli-service build","build:stage": "vue-cli-service build --mode staging","preview": "node build/index.js --preview","lint": "eslint --ext .js,.vue src","test:unit": "jest --clearCache && vue-cli-service test:unit","test:ci": "npm run lint && npm run test:unit","svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"},

主要是将dev这一行的代码改为

 "dev": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve",

这里需要注意的是,要是团队中的nodejs版本不一致,不要提交该 package.json 文件。

3.3 更换NodeJs版本来解决

卸载本地NodeJs环境,暗转NodeJsV17之前的版本。

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

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

相关文章

数据结构3、基于栈的后缀算术表达式求值

1 题目描述 图1 中缀表达式转化为后缀表达式题目描述 图2 基于栈的后缀算术表达式求值题目描述 2 题目解读 借助一个运算符栈&#xff0c;可将中缀表达式转化为后缀表达式&#xff1b;借助一个运算数栈&#xff0c;可对后缀表达式求值。借助一个运算符栈和一个运算数栈&#xf…

【BUG】golang gorm导入数据库报错 “unexpected type clause.Expr“

帮同事排查一个gorm导入数据报错的问题 事发现场 ck sql CREATE TABLE ods_api.t_sms_jg_msg_callback_dis (app_key String DEFAULT COMMENT 应用标识,callback_type Int32 DEFAULT 0 COMMENT 0送达&#xff0c;1回执,channel Int32 DEFAULT 0 COMMENT uid下发的渠道,mode…

文献速递:人工智能医学影像分割--- 深度学习分割骨盆骨骼:大规模CT数据集和基线模型

文献速递&#xff1a;人工智能医学影像分割— 深度学习分割骨盆骨骼&#xff1a;大规模CT数据集和基线模型 我们为大家带来人工智能技术在医学影像分割上的应用文献。 人工智能在医学影像分析中发挥着至关重要的作用&#xff0c;尤其体现在图像分割技术上。这项技术的目的是准…

Blender教程(基础)-面的细分与删除、挤出选区-07

一、Blender之面的细分 新建一个立方体&#xff0c;在编辑模式下、选中一个面。 在选中的面上单击右键弹出细分选项&#xff0c;选择细分。 在选中细分后、会默认细分1次。修改细分次数在左下角 二、Blender之面的删除 选择中需要操作的面&#xff0c;在英文状态下按X键弹…

51单片机通过级联74HC595实现倒计时秒表Protues仿真设计

一、设计背景 近年来随着科技的飞速发展&#xff0c;单片机的应用正在不断的走向深入。本文阐述了51单片机通过级联74HC595实现倒计时秒表设计&#xff0c;倒计时精度达0.05s&#xff0c;解决了传统的由于倒计时精度不够造成的误差和不公平性&#xff0c;是各种体育竞赛的必备设…

minio2023版本安装对象存储文件迁移

一、环境 minio版本&#xff1a;minio-20230320201618.0.0.x86_64.rpm 二、安装 将下载好的rpm包放在文件夹下&#xff0c;然后cd到该目录 sudo rpm -ivh minio-20230320201618.0.0.x86_64.rpm 三、启动 1、minio的位置 which minio cd /usr/local/bin 2、启动 &#xff08;可…

负载均衡下的webshell连接

一、环境配置 1.在Ubuntu上配置docker环境 我们选择用Xshell来将环境资源上传到Ubuntu虚拟机上&#xff08;比较简单&#xff09; 我们选择在root模式下进行环境配置&#xff0c;先将资源文件复制到root下&#xff08;如果你一开始就传输到root下就不用理会这个&#xff09; …

MySQL安装部署-集群版

MySQL支持主从复制策略&#xff0c;本文主要描述读写分离集群的安装部署。 如上所示&#xff0c;MySQL数据库的主从复制策略中&#xff0c;主数据库Master同步binary log中的数据到从数据库Slave A以及从数据库Slave B&#xff0c;主数据库Master可提供写服务以及部分读服务、从…

Netty核心——Reactor下篇(十)

任务队列中的Task有3种典型使用场景 用户程序自定义的普通任务 比如有一个非常耗时长的业务 异步执行提交该Channel对应的NioEventLoop的TaskQueue中 用户自定义定时任务 该任务提交到scheduleTaskQueue中 非当前Reactor线程调用Channel的各种方法 例如在推送系统的业务线程…

iOS 17.4 苹果公司正在加倍投入人工智能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

MySQL进阶45讲【8】MySQL事务到底是隔离的还是不隔离的?

1 前言 在 MySQL进阶45讲【3】事务隔离的恩恩怨怨 这篇文章和大家讲事务隔离级别的时候提到过&#xff0c;如果是可重复读隔离级别&#xff0c;事务T启动的时候会创建一个视图read-view&#xff0c;之后事务T执行期间&#xff0c;即使有其他事务修改了数据&#xff0c;事务T看…

【论文复现】基于CGAN的手写数字生成实验——模型改进

文章目录 2.4.1 超参数调整一、batch size二、 epochs三、 Adam&#xff1a;learning rate四、 Adam&#xff1a;weight_decay五、 n_critic 2.4.2 模型改进一、 超参数优化&#xff08;一&#xff09;batch size&#xff08;二&#xff09;learning rate&#xff08;三&#x…