[英]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.