Loading...

如何解决“digital envelope routines::unsupported”错误?

问题描述

在集成小鱼易连WebSDK时,可能会下载并运行​​Web SDK Vue Demo​​查看整体的效果,在项目通过Github克隆到本地后,安装依赖阶段可能会遇到如下错误:

error: 0308010C:digital envelope routines::unsupported

出现这个错误是因为 Node.js V17+版本发布的OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级Nodejs版本后会报错;

解决方法

方法一

查看Node版本,确实是否安装了nodejs@17+以上版本,如果是,请降级到17以下版本,推荐nodejs@16版本,降级完成后,运行运行即可;

方法二

修改项目中的package.json文件,在启动参数时,增加​​--openssl-legacy-provider​​参数:

  "scripts": {
"start": "SET NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve"
},

注意:添加此参数后,如果使用了node.js老版本,则无法执行脚本,因为老版本node.js不支持设置​​​​--openssl-legacy-provider​属性值

​方法三

​webpack自5.61.0版本开始,解决了此问题,可将webpack升级至此版本以上。

针对使用@vue/cli-service和react-scripts工具构建的项目,可对其工具进行升级:

  • @vue/cli-service 升级至5.0.1+
  • react-scripts 升级至5.0.0+​


意见反馈