arch linux 下 vue-electron 运行 electron:serve 报错

我在 linux 下的 vue-electron 项目(用的@vue/cli构建,和vue-cli-plugin-electron-builder)运行 npm run electron:serve 报错

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:138:10)
    at module.exports (/home/yan2u/Desktop/electron/electron-explorer/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/home/yan2u/Desktop/electron/electron-explorer/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/home/yan2u/Desktop/electron/electron-explorer/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/NormalModule.js:471:10)
    at /home/yan2u/Desktop/electron/electron-explorer/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/NormalModule.js:503:5
    at /home/yan2u/Desktop/electron/electron-explorer/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/NormalModule.js:358:12
    at /home/yan2u/Desktop/electron/electron-explorer/node_modules/vue-cli-plugin-electron-builder/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/home/yan2u/Desktop/electron/electron-explorer/node_modules/vue-cli-plugin-electron-builder/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at Array.<anonymous> (/home/yan2u/Desktop/electron/electron-explorer/node_modules/vue-cli-plugin-electron-builder/node_modules/loader-runner/lib/LoaderRunner.js:205:4) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

按照网上的方法,设置了 export NODE_OPTIONS=--openssl-legacy-provider 之后,electron 不能启动了,提示

--openssl-legacy-provider is not allowed in NODE_OPTIONS

两边好像是互相冲突的😭
这是我的版本信息:

  • nodejs: 20.2.0
  • electron: 25.2.0
  • vue/cli: 5.0.8

有人知道这是什么问题嘛😭

node版本太高,尝试降低版本,再试一下

  • 这篇博客: vue electron-builder linux 打包失败那些事中的 第二坑 针对问题处理 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 既然是ico图标错误,下意识认为图标文件路径配置错误,查找相关资料肯定配置没错,可是为什么还是报错。配置如下

    linux: {
    	icon: path.resolve(__dirname, "bb.ico"),
    	target: [
    		 "AppImage"
    	]
    }
    

    思考许久,突然想起来,在win下打包时,在制作ico时有系统平台格式,也就是ico是给win下使用的,linux就不行或者在mac下不行。我用的时icofx 3工具制作的。
    到此问题更清晰了,原来是ico格式错误才打印⨯ unknown output format set,程序真不会骗人,这错误提示真的简单明了。