[英]Will an Electron based app pass system wide nodejs environment variables?
是和不是。 环境变量当然可用于应用程序代码( process.env
),并且 electron 本身支持一些(但不是全部) NODE_*
变量。
重要的是要记住 electron 是节点和 Chrome 用螺栓固定在一起的。 与 HTTP 请求特别相关,这意味着 electron 实际上有两个并行的 HTTP 实现:浏览器 ( fetch
/XHR) 和节点 ( require('http')
)
因此,如果 HTTP 请求正在通过浏览器管道,则NODE_*
变量无效,相反,通过节点管道发出的请求不受Chrome 标志的影响。
还有一些额外的怪癖:
所以:
NODE_TLS_REJECT_UNAUTHORIZED=0
并在 main.js 的最开头调用app.commandLine.appendSwitch('ignore-certificate-errors')
。 当然,出于显而易见的原因,全面禁用证书错误是危险的。 不幸的是, NODE_EXTRA_CA_CERTS
在 electron 中被破坏,因此很难让节点管道信任自签名证书。 此评论建议猴子修补NativeSecureContext.prototype.addRootCerts
以解决此问题。 您也可以尝试猴子修补https.globalAgent
。
无论哪种方式,我都不相信有办法在不修改应用程序代码的情况下获得受信任的证书。
您可能需要修改应用程序 JS 才能使其正常工作。 如果您正在处理分布式应用程序, asar extract
可能会引起您的兴趣。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.