如何在Electron JS中添加工作线程?

vd2z7a6w  于 2023-04-27  发布在  Electron
关注(0)|答案(2)|浏览(250)

bounty将在2小时后过期。回答此问题可获得+50声望奖励。Wokers希望引起更多关注此问题。

我们如何在Electron JS中添加工作线程?我在下面尝试过,在开发模式下运行良好。

const worker = new Worker(path.join(__dirname, 'worker.js'));

但这会在打包应用时导致错误,它会在app. asar中查找worker.js。即使在build/files中包含worker.js。

yxyvkwin

yxyvkwin1#

您可能需要执行这样的修补程序,而不是使用__dirname,因为在生产环境中,__dirname将解析为ASAR,正如您所发现的:

const { app } = require('electron');

const rootPath = app.isPackaged ? app.getAppPath() : __dirname;
const worker = new Worker(path.join(rootPath, 'worker.js'));

https://www.electronjs.org/docs/latest/api/app#appispackaged-readonly
请注意,根据您的确切设置,您可能需要在生产应用中向上或向下导航文件夹,在这种情况下,您可以使用以下命令:

const rootPath = app.isPackaged ? app.getAppPath() : path.join(__dirname, '..');
ego6inou

ego6inou2#

我在Webpack文档中找到了答案。

new Worker(new URL('./worker.js', import.meta.url));

这对我很有用https://webpack.js.org/guides/web-workers/

相关问题