【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",
  },
相关推荐
用户38022585982413 分钟前
vue3源码解析:依赖收集
前端·vue.js
用户75794199497013 分钟前
基于JavaScript的简易Git
javascript
gzzeason16 分钟前
使用Vite创建React初始化项目
前端·javascript·react.js
又双叒叕77817 分钟前
React19 新增Hooks:useOptimistic
前端·javascript·react.js
归于尽35 分钟前
V8 引擎是如何给 JS"打扫房间"的 ?
前端·javascript
自由逐风37 分钟前
JS 处理长整型数字的坑:从雪花 ID 精度丢失说起
javascript
爱学习的茄子37 分钟前
从0到1:揭秘前端网络请求的进化之路
前端·javascript·面试
云动雨颤41 分钟前
流量分发代码实战|学会用JS控制用户访问路径
javascript
wzyoung41 分钟前
element-ui让el-form绑定的深层对象也能通过内置的resetFields方法重置
前端·javascript·vue.js
gnip1 小时前
项目开发流程之技术调用流程
前端·javascript