Electron - 不能在工作线程中使用 puppeteer

标签 electron puppeteer electron-builder

我想在我的 Electron 应用程序的工作线程中使用 puppeteer。在构建捆绑包时,我使用 extraFiles 将工作代码复制到 Resources/bin。但不幸的是,它在运行后抛出异常:“找不到模块 puppeteer”。我已经尝试过的:

  • 正常导入puppeteer:
  • const puppeteer = require('puppeteer');
    
  • 在 app.asar.unpack 中导入 puppeteer:
  • const puppeteerPath = path.resolve(
      process.resourcesPath,
      'app.asar.unpacked/node_modules/puppeteer/index.js'
    );
    const puppeteer = require(`${puppeteerPath}`);
    
  • 在 app.asar 中导入 puppeteer:
  • const puppeteerPath = path.resolve(
      process.resourcesPath,
      'app.asar/node_modules/puppeteer/index.js'
    );
    const puppeteer = require(`${puppeteerPath}`);
    

    这是重现我的案例的仓库:https://github.com/alfredalfie123/test_worker

    请你帮助我好吗?

    最佳答案

    您需要将所有 puppetter 相关的 deps 复制到 asar.unpack:
    https://github.com/electron/electron/issues/18540#issuecomment-660679649

    关于 Electron - 不能在工作线程中使用 puppeteer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61523893/

    相关文章:

    electron - 在运行时操作MenuItem的enabled属性

    electron - 适当的权利以自动在macOS上打开目录

    electron - 在Win10中Electron NET不在生产模式下运行

    node.js - 在我的 create-react-app 应用程序上运行 electro-build 会出现错误?

    Electron 主进程热重载或实时重载

    javascript - electron v10.1.1 给出 Uncaught TypeError : Cannot read property 'dialog' of undefined, 但相同的代码在 Electron v9.3.0 中有效

    node.js - 使用spawn方法从 Electron 应用程序运行子进程时出现问题

    javascript - Puppeteer,保存网页和图片

    Javascript 循环、异步函数和 headless 浏览器

    javascript - 如何将回调作为变量传递给 puppeteer 中的 page.evaluate?