【Electron+Vue】Error: error:0308010C:digital envelope routines::unsupported

问题描述

使用 electron-builder 构建 vue 项目,运行 npm run electron:build ,构建过程报错。

bash 复制代码
/  Bundling main process...

ERROR  Failed to compile with 1 errors                                                                                                                  16:08:17

 error 

background.js from Terser
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)

原因分析

在使用 electron-builder 构建项目时,使用的 Node.js 版本过高,不支持当前的 OpenSSL 版本,导致构建失败。

解决这个问题的方法是在构建命令前设置 NODE_OPTIONS 环境变量,强制使用 OpenSSL 的旧版提供程序。


解决方案

打开package.json,找到

javascript 复制代码
  "scripts": {
    "electron:build": "vue-cli-service electron:build",
  },

改为

javascript 复制代码
  "scripts": {
    "electron:build": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service electron:build",
  },
相关推荐
To_OC3 分钟前
万字解析《JS语言精粹》之第四章:函数15大核心精髓(JS灵魂核心)
前端·javascript·代码规范
宋拾壹6 分钟前
同时添加多个类目
android·开发语言·javascript
IT知识分享11 分钟前
从零开发在线简繁转换工具:OpenCC 实战、避坑经验与方案选型
javascript·python
川冰ICE18 分钟前
JavaScript实战④|天气查询应用,调用API与异步处理
javascript·css·css3
微扬嘴角18 分钟前
react篇4--setState、LazyLoad和Hooks
前端·javascript·react.js
杨梦馨30 分钟前
万级数据表格卡死?Web Worker 一招搞定
前端·javascript·vue.js
用户4845262558235 分钟前
JavaScript 数组不是数组,是对象
javascript
用户4845262558244 分钟前
用栈模拟队列:算法题背后的原型链课
javascript
零陵上将军_xdr1 小时前
后端转全栈学习-Day5-JavaScript 基础-3
开发语言·javascript·学习
ssshooter1 小时前
为什么父元素的高度不会包含子元素的 margin?
前端·javascript·面试