Electron Web Workers 不支持 NodeJS 模块

NodeJS modules not supported in Electron Web Workers

我正在使用 Electron 与 ReactJS 一起构建桌面应用程序。

我从第一个渲染器进程打开一个新的、不可见的 BrowserWindow 以启动另一个渲染器进程。在这个新的渲染器进程中,我注册了一个网络工作者,其中将定期调用 API 调用来获取数据。

这是不可见的 window HTML 脚本标签中用于注册网络工作者的代码:

let installWebWorker = () => {
     console.log("installWebWorker()");
     if (typeof(Worker) !== "undefined") {
         console.log("Web worker supported");
         let monitorsWorker = new Worker("fetchMonitors.js");
     } else {
         console.log("Sorry! No Web Worker support...");
     }   
 }; //end installWebWorker()
 installWebWorker();

在 fetchMonitors.js worker 本身中,我需要 "electron-is-dev" 节点模块在开发中进行 fetch API 调用。为此,我使用 require("electron").remote.require("electron")。我收到以下错误:

开发工具错误:

这个错误让我相信网络工作者不支持 Electron NodeJS 模块。然而,Electron 文档 here 另有说明。

编辑了这个答案,因为它是旧的错误信息。

我能够解决我自己的问题。事实证明,只要你在后台启用nodeIntegrationwindow到运行web worker,你就可以在web worker中实际使用NodeJS。

引发我错误的是我通过 electron.remote() 请求节点模块。在 web worker 中,您可以像通常在节点中一样使用 require() 导入节点模块。

这篇 repository 详细介绍了如何在 Electron 中的网络工作者中使用节点模块。