当前位置:   article > 正文

Vue项目:Error: error:0308010C:digital envelope routines::unsupported

Vue项目:Error: error:0308010C:digital envelope routines::unsupported

背景

Vue2+ElementUI脚手架项目,启动的时候报下列错误

  1. > vue-cli-service serve
  2. INFO Starting development server...
  3. 95% emitting CompressionPlugin ERROR Error: error:0308010C:digital envelope routines::unsupported
  4. Error: error:0308010C:digital envelope routines::unsupported
  5. at new Hash (node:internal/crypto/hash:69:19)
  6. at Object.createHash (node:crypto:133:10)

原因

第一感觉就是node版本的问题,因为本地node版本用的算是比较新的,用的18.8.2版本。经过查询相关资料,发现是node17以后OpenSSL3.0对允许算法和密钥大小增加了严格的限制,由此造成的影响。既然找到了问题解决办法无外乎使用低版本node版本和解决openssl的兼容问题

解决办法

方法1 安装node版本管理器 n,切换到低版本node运行此项目

  1. npm install -g n
  2. n 16.20.1 //安装node 16,此处可以安装自己想用的版本
  3. n use 16.20.1

方法2 设置环境变量,规避openssl问题

1、临时环境变量的方式

  1. // macos或者linux
  2. export NODE_OPTIONS=--openssl-legacy-provider
  3. //windows
  4. set NODE_OPTIONS=--openssl-legacy-provider

2、在vue项目的package.json中配置

  1. "scripts": {
  2. "dev": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
  3. "build:prod": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
  4. "build:stage": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode staging"
  5. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/983803
推荐阅读
相关标签
  

闽ICP备14008679号