问题
我正在尝试在Electron中使用Web Workers。目前,我可以从渲染器进程实例化工作进程,但是当我尝试在工作进程中执行require('some_module')
时,进程会崩溃并显示以下错误:
找不到模块“some_module”。
cjs加载程序显然找不到我的模块。但是,当我从渲染器进程中进行相同的require
调用时,我可以require
该模块。
我遵循了此处提到的所有步骤。同时,我设置了选项nodeIntegrationInWorker: true
,并且可以毫无问题地对node内置模块(如fs
)进行require
调用。
一些观察结果
-
渲染器进程中的
__dirname
解析为root/node_modules/electron/dist/resources/electron.asar/renderer
而工作进程中的解析为
root/node_modules/electron/dist/resources/electron.asar/worker
据我所知,
require
函数应该能够在node_modules目录中找到我的模块,而该目录是renderer和worker目录的父目录 工作进程中
process
全局变量的process.type
等于worker
,而process.argv[1]
等于--type=renderer
,这让我感到奇怪。
元信息: Electron版本="4.0.0",平台="win32",架构="x64",Node版本="v10.11.0"
如有任何帮助,请告知。