当前位置: 首页 > news >正文

Nodejs运行vue项目时,报错:Error: error:0308010C:digital envelope routines::unsupported



前端项目使用( 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、更改项目环境变量来解决

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之前的版本。

相关文章:

  • 自动化测试:Selenium中的时间等待
  • AD学习笔记
  • SPI机制详解
  • 学习JavaEE的日子 Day29 yield,join,线程的中断,守护线程,线程局部变量共享,线程生命周期
  • I.MX6ULL_Linux_系统篇(25) buildroot文件系统构建
  • C++自主点餐系统
  • WordPress Git主题 响应式CMS主题模板
  • python基本数据(如注释)
  • taro框架之taro-ui中AtSwipeAction的使用
  • Swift 周报 第四十八期
  • QT事件机制
  • 在Linux上使用nginx反向代理部署Docker网站
  • 【Java扫盲篇】String、String Buffer和String Builder的区别
  • iOS开发 - 转源码 - __weak问题解决
  • spikingjelly学习-使用单层全连接snn脉冲神经网络识别mnist数据集
  • __proto__ 和 prototype的关系
  • 【comparator, comparable】小总结
  • 11111111
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • centos安装java运行环境jdk+tomcat
  • ES6语法详解(一)
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • js数组之filter
  • leetcode386. Lexicographical Numbers
  • opencv python Meanshift 和 Camshift
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • rabbitmq延迟消息示例
  • Redis字符串类型内部编码剖析
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SpiderData 2019年2月16日 DApp数据排行榜
  • webpack4 一点通
  • 从setTimeout-setInterval看JS线程
  • 猴子数据域名防封接口降低小说被封的风险
  • 简单基于spring的redis配置(单机和集群模式)
  • 聊一聊前端的监控
  • 容器服务kubernetes弹性伸缩高级用法
  • 跳前端坑前,先看看这个!!
  • 一份游戏开发学习路线
  • 用element的upload组件实现多图片上传和压缩
  • Nginx实现动静分离
  • #ifdef 的技巧用法
  • #Java第九次作业--输入输出流和文件操作
  • $.ajax,axios,fetch三种ajax请求的区别
  • (04)odoo视图操作
  • (1)bark-ml
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (70min)字节暑假实习二面(已挂)
  • (C++20) consteval立即函数
  • (转)JAVA中的堆栈
  • (转)Windows2003安全设置/维护
  • *2 echo、printf、mkdir命令的应用
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .“空心村”成因分析及解决对策122344
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复