【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",
  },
相关推荐
XTTX1105 小时前
Vue3+Cesium教程(36)--动态设置降雨效果
前端·javascript·vue.js
han_7 小时前
从一道前端面试题,谈 JS 对象存储特点和运算符执行顺序
前端·javascript·面试
前端小超超8 小时前
ionic + vue3 + capacitor遇到backButton问题
前端·javascript·vue.js
EndingCoder8 小时前
枚举类型:常量集合的优雅管理
前端·javascript·typescript
起名时在学Aiifox9 小时前
从零实现前端数据格式化工具:以船员经验数据展示为例
前端·vue.js·typescript·es6
cute_ming9 小时前
关于基于nodeMap重构DOM的最佳实践
java·javascript·重构
码途潇潇9 小时前
JavaScript 中 ==、===、Object.is 以及 null、undefined、undeclared 的区别
前端·javascript
放牛的小伙10 小时前
vue 表格 vxe-table 加载数据的几种方式,更新数据的用法
vue.js
Sun_小杰杰哇10 小时前
Dayjs常用操作使用
开发语言·前端·javascript·typescript·vue·reactjs·anti-design-vue
basestone10 小时前
🚀 从重复 CRUD 到工程化封装:我是如何设计 useTableList 统一列表逻辑的
javascript·react.js·ant design