首页 > 解决方案 > 在使用 puppeteer 的电子应用程序中使用 webworker

问题描述

我阅读了有关 worker 的web workers APIpuppeteer 文档。现在我正在尝试在使用 puppeteer webdriver 的电子应用程序中使用 worker。应用程序是使用vue-electron样板生成的。我想在电子应用程序的节点端使用 worker。

到目前为止,我尝试过像他们在 MDN 中展示的那样:

const Worker = require('worker_threads');
console.log(Worker);

这导致错误:

错误:找不到模块“worker_threads”

我确保我node -v在终端中使用最新的节点版本,我是,版本是v12.3.1.

接下来,我尝试在 github 上的 nodejs/help 中挖掘一些东西,我在他们建议使用的地方找到了这个--experimental-worker。所以我做了:

"dev": "node --experimental-worker .electron-vue/dev-runner.js",

还是一样的错误。接下来我试图electron在 github 上的问题中找到一些东西,我发现了这个主题,他们建议在其中设置环境变量NODE_OPTIONS=--experimental-worker. 所以我做了(Windows 10):

在此处输入图像描述

(对不起波兰语)。错误还是一样。我在网络中找不到更多提示。我绝对需要你们的帮助。

我真的很想尝试这个 worker_threads,因为每 300 毫秒我就会从一个页面中获得非常大的(超过 200k 个元素)数组,并且我正在对该数组执行过滤器,这会导致浏览器“滞后”。

环境:

标签: node.jselectronpuppeteerweb-workerworker

解决方案


所以基本上Worker Thread API只是上面的节点版本v10。您使用的版本 (electron 2.x) 附带节点 v8.x,它没有提供该功能。


推荐阅读