node.js - 在使用 puppeteer 的电子应用程序中使用 webworker
问题描述
我阅读了有关 worker 的web workers API和puppeteer 文档。现在我正在尝试在使用 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 个元素)数组,并且我正在对该数组执行过滤器,这会导致浏览器“滞后”。
环境:
- 视窗 10
解决方案
所以基本上Worker Thread API
只是上面的节点版本v10
。您使用的版本 (electron 2.x) 附带节点 v8.x,它没有提供该功能。
推荐阅读
- javascript - 如何在当前页面上保留最后一个关键帧上的导航栏元素的动画?
- typescript - 生成构建器函数类型接口的 Typescript 泛型
- spring-boot - 树莓派中的 Java Springboot 构建失败
- libreoffice - 如何以编程方式在 LibreOffice Calc 中触发 AutoFit / SetOptimalHeight?
- git - Ubuntu 20.04 在 gr-iio cmake 期间找不到 MPIR
- ios - 如何在 SwiftUI 中创建启动屏幕?我不使用故事板
- html - 为什么 span 会出现奇怪的现象?
- swift - 为什么设置约束后我的子视图边界(0,0,0,0)?
- python - 在 vscode 中重构时如何忽略文件夹?
- ruby-on-rails - Rails API:通过许多添加/删除更新关联记录列表(多对多)的最有效方法?