You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启动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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:45:34