当前位置: 首页 > 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之前的版本。

http://www.lryc.cn/news/326276.html

相关文章:

  • 华为汽车图谱
  • 鸿蒙操作系统-初识
  • 【ZZULIOJ】1003: 两个整数的四则运算(Java)
  • 聊聊芯片原厂
  • 百人一岗,Android开发者的困境。。。。。
  • 若依分离版 —引入echart连接Springboot后端
  • Halcon深度学习项目实战
  • 子类中的方法去调用父类中的方法有几种形式?原生django如何向响应头写入数据
  • 数据安全治理框架构建
  • 深度学习十大算法之图神经网络(GNN)
  • 【工具类】git log 常用别名,git log 干活,git log常用参数
  • [linux] AttributeError: module ‘transformer_engine‘ has no attribute ‘pytorch‘
  • 前端面试题---->JavaScript
  • spring 的理解
  • 【Java程序设计】【C00384】基于(JavaWeb)Springboot的民航网上订票系统(有论文)
  • 如何查看局域网内所有的ip和对应的mac地址
  • 应用层协议 - HTTP
  • mysql安装及操作
  • 【计算机操作系统】深入探究CPU,PCB和进程工作原理
  • Pillow教程04:学习ImageDraw+Font字体+alpha composite方法,给图片添加文字水印
  • fastjson2 反序列化包含多层泛型结构的实体类
  • P6学习:解析P6 WBS-工作分解结构的原则
  • C++ empalce_back 和 push_back的区别
  • java1.8常考面试题
  • Java 中的业务是指什么?
  • 【MySQL】聊聊自增id用完怎么办?
  • 新能源汽车充电桩主板各模块成本占比解析
  • 【面试经典150 | 动态规划】三角形最小路径和
  • 【线段树二分】第十三届蓝桥杯省赛C++ A组/研究生组 Python 研究生组《扫描游戏》(C++)
  • 类模板与继承及成员、全局函数的实现