启动Electron报错error:0308010C,求适配Node.js最新LTS的解法
Electron启动报错(ERR_OSSL_EVP_UNSUPPORTED)解决方案
问题概述
执行npm run electron:serve启动Electron时,出现如下报错:
project-plugins@0.1.0 electron:serve vue-cli-service electron:serve INFOStarting development server... DONE Compiled successfully in 3002ms 17:26:56 App running at: - Location: http://localhost:8080/ - Network: http://192.168.3.10:8080/ Note that the development build is not optimized. To create a production build, run npm run build. - Bundling main process...node:internal/crypto/hash:71 this[kHandle] = new _Hash(algorithm, xofLen); ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at module.exports (C:\Users\allan\Downloads\Projects\curso-vue\vue-cli\projeto-plugins\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\util\createHash. js:135:53) at NormalModule._initBuildHash (C:\Users\allan\Downloads\Projects\curso-vue\vue-cli\projeto-plugins\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\NormalModule.js: 417:16) at handleParseError (C:\Users\allan\Downloads\Projects\curso-vue\vue-cli\projeto-plugins\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\NormalModule.js:471: 10) at C:\Users\allan\Downloads\Projects\curso-vue\vue-cli\projeto-plugins\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\NormalModule.js:503:5 at C:\Users\allan\Downloads\Projects\curso-vue\vue-cli\projeto-plugins\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\NormalModule.js:358:12 at C:\Users\allan\Downloads\Projects\curso-vue\vue-cli\projeto-plugins\node_modules\vue-cli-plugin-electron-builder\node_modules\loader-runner\lib\LoaderRunner.js:373: 3 at iterateNormalLoaders (C:\Users\allan\Downloads\Projects\curso-vue\vue-cli\projeto-plugins\node_modules\vue-cli-plugin-electron-builder\node_modules\loader-runner\lib\LoaderRunner.js: 214:10) at Array.<anonymous> (C:\Users\allan\Downloads\Projects\curso-vue\vue-cli\projeto-plugins\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' }
已尝试重装最新Node.js、回退旧版Node.js(引发其他问题,希望保留最新LTS)、安装OpenSSL和crypto-browserify模块,均未解决问题。
可行解决方案
1. 临时启用旧版SSL算法支持(开发环境适用)
在启动命令中添加NODE_OPTIONS=--openssl-legacy-provider参数,兼容旧版哈希算法:
- Windows(CMD):修改
package.json的scripts字段:"scripts": { "electron:serve": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service electron:serve" } - Windows(PowerShell):直接执行命令:
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm run electron:serve - Mac/Linux:修改
package.json的scripts字段:"scripts": { "electron:serve": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service electron:serve" }
2. 更新依赖至兼容版本
升级相关依赖,使其适配最新Node.js LTS:
- 更新
vue-cli-plugin-electron-builder:npm update vue-cli-plugin-electron-builder --save-dev - 更新
electron:npm update electron --save-dev - 若webpack版本过低,可尝试升级(需确保与插件兼容):
npm update webpack --save-dev
3. 配置Webpack使用兼容的哈希算法
在项目根目录的vue.config.js中添加配置,指定Webpack使用sha256哈希算法(替代默认的md4):
module.exports = { pluginOptions: { electronBuilder: { chainWebpackMainProcess: config => { config.output.hashFunction('sha256'); } } } };
内容的提问来源于stack exchange,提问作者Allan Michel
相关产品推荐
相关产品推荐

