Nodejs运行vue项目时,报错:Error: error:0308010C:digital envelope routines::unsupported
创始人
2024-05-29 09:20:30
0

前言

前端项目使用( npm run dev ) 运行vue项目时,出现错误:Error: error:0308010C:digital envelope routines::unsupported

经过探索,发现问题所在,主要是nodeJs V17版本发布了OpenSSL3.0对算法和秘钥大小增加了更为严格的限制,导致了nodeJs V17之前版本不受影刺而nodeJs V17和之后的版本会出现这个错误。

也就是npm升级导致了与OpenSSL不兼容导致的初始化失败,也就是nodeJs版本过高的原因导致了运行失败。

系统安装的nodeJs版本正好是V18,因此出现了这个错误系统。

解决方案

1、更改系统环境变量来解决

2、更改项目环境变量来解决

3、更换NodeJs版本来解决

具体演示

1、更改系统环境变量

①Windows平台

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

 

 

②Linux / Mac 平台

export NODE_OPTIONS=--openssl-legacy-provider

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

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"},

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

②与①类似,在编辑器集成终端里,直接设置环境变量进行控制(这种方式只能临时解决)

具体如下:

找到 package.json 文件右键,在集成终端中打开,直接输入 set NODE_OPTIONS=--openssl-legacy-provider 回车,然后 npm run serve 重新运行项目即可。

// windows系统
set NODE_OPTIONS=--openssl-legacy-provider// linux系统
export NODE_OPTIONS=--openssl-legacy-provider

3、更换NodeJs版本来解决

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

相关内容

热门资讯

千岛群岛发生5.8级地震 震源... 中国地震台网正式测定:7月15日05时37分,在千岛群岛(北纬46.30度,东经151.75度)发生...
美股三大指数集体收涨,加密货币... 格隆汇7月15日|美股三大指数集体收涨,道指涨0.2%,纳指涨0.27%,标普500指数涨0.14%...
社交“零糖”莫过度 □ 孟亚生 当下,“零糖社交”成为不少青年的交往常态。某社交平台发布的《2024年社交趋势洞察...
天舟九号货运飞船发射任务取得圆... 来源:中国新闻网 中新网海南文昌7月15日电 (记者 马帅莎)据中国载人航天工程办公室消息,北京时间...
海城3月种药草7月下豆种 收入... 转自:辽宁日报 本报记者 崔治 7月10日,海城市南台镇交界台村的田野上,紫蓝色的水飞蓟花冠在风中舒...
锁金村街道快速解决多年漏水难题... 转自:南京晨报 晨报讯(通讯员 高建 南京晨报/爱南京记者 李琳)近日,玄武区锁金村街道锁四...
五地中学生融铸足球赛举办   在首都体育学院的绿茵场上,中学生们尽情挥洒汗水。实习生 李竞择摄  本报讯(记者 李祺瑶)昨天1...
依托“双凌共建”引育人才 转自:辽宁日报 本报讯 今年年初以来,凌源市聚焦央地、校企人才交流互动,依托“双凌共建”,制定完善人...
如东县生态健康种植养殖示范片区... 为深化区域协作,充分发挥片区大党委凝聚乡村振兴合力、促进资源整合的作用,7月1日,如东县袁庄镇、河口...
泽连斯基分别与特朗普和吕特通话... 来源:央视新闻客户端 当地时间7月14日,乌克兰总统泽连斯基在社交媒体上表示,他与美国总统特朗普进行...