Vue.js创建Electron应用启动失败:NODE_OPTIONS含--openssl-legacy-provider报错
解决Electron启动报错:
--openssl-legacy-provider is not allowed in NODE_OPTIONS 问题根源
你使用的Electron版本是^13.0.0,它内置的Node.js版本是v14.x,而--openssl-legacy-provider是Node.js 17及以上版本才新增的参数。当你通过NODE_OPTIONS传递这个参数时,Electron进程读取到了自身内置Node不支持的参数,因此抛出错误。更换全局Node.js版本无效,因为Electron使用的是自身内置的Node环境,和全局版本无关。
解决方案
移除启动命令中的无效参数
修改package.json里的启动脚本,删掉传递给Electron的NODE_OPTIONS='--openssl-legacy-provider':"scripts": { "electron:serve": "vue-cli-service electron:serve" }若Vue编译阶段需要该参数
如果是Vue项目编译时遇到OpenSSL兼容问题才加的这个参数,要把参数仅传给Vue CLI的编译进程,而非Electron。可以修改vue.config.js配置:module.exports = { chainWebpack: config => { config.node.set('opensslConfig', { legacyProvider: true }) } }可选:升级Electron版本(需谨慎)
如果你确实需要使用--openssl-legacy-provider,可以考虑升级Electron到18+版本(对应内置Node.js v16+),但升级后要检查所有依赖的兼容性,避免出现新问题。
内容的提问来源于stack exchange,提问作者Arnaud
相关产品推荐
相关产品推荐

