我在让 Electron 在我的 vuejs/vuetify 应用程序中工作时遇到问题。
我不确定如何修复以下错误。
以下是我正在使用的工具的版本:
vue --version = @vue/cli 5.0.4
节点-v = v18.12.1
包.json “依赖项”:{ "core-js": "^3.8.3", "vue": "^2.6.14", “vuetify”:“^2.6.0”
我使用管理命令行中的这些命令创建了我的应用程序:
-vue创建testvue02
-cd testvue02
-vue add vuetify - 我做了一个“npm runserve”,这确实编译并显示了默认值 vue/vuetify 网页
-vue 添加电子构建器
-npm 运行电子:服务
这是控制台输出:
> testvue02@0.1.0 electron:serve
> vue-cli-service electron:serve
INFO  Starting development server...
DONE  Compiled successfully in 12524ms   2:45:44 PM
App running at:
- Local:   http://localhost:8080/
- Network: http://192.168.1.68: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\johndoe\source\repos\testvue02\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\util\createHash.js:135:53)
 at NormalModule._initBuildHash (C:\Users\johndoe\source\repos\testvue02\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\NormalModule.js:417:16)
 at handleParseError (C:\Users\johndoe\source\repos\testvue02\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\NormalModule.js:471:10)
 at C:\Users\johndoe\source\repos\testvue02\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\NormalModule.js:503:5
 at C:\Users\johndoe\source\repos\testvue02\node_modules\vue-cli-plugin-electron-builder\node_modules\webpack\lib\NormalModule.js:358:12
 at C:\Users\johndoe\source\repos\testvue02\node_modules\vue-cli-plugin-electron-builder\node_modules\loader-runner\lib\LoaderRunner.js:373:3
 at iterateNormalLoaders (C:\Users\johndoe\source\repos\testvue02\node_modules\vue-cli-plugin-electron-builder\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
 at Array.<anonymous> (C:\Users\johndoe\source\repos\testvue02\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 v18.12.1            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
原因
NodeJs v18 修复了 SSL 提供程序中的一个安全漏洞,该漏洞导致 webpack v4 模块发生重大更改。参考:https://stackoverflow.com/a/73027407/20130767
一个快速但肮脏的修复方法是降级到 Node.js v16,但这会使您的构建面临安全威胁(在上面的参考文献中进行了解释)。我将在下面概述一个与 Node.js v18 配合使用的更好的解决方案。
解决方案
我遇到了完全相同的问题并通过以下方式解决了它: