electron - Puppeteer:下载适用于不同平台的 Chromium

标签 electron chromium puppeteer

我正在使用 Puppeteer 构建一个 UI 自动器,并将其作为 Electron 打包的应用程序提供。除了这个问题之外,它运行良好且顺利:

Chromium is not download 当应用程序在与打包应用程序的平台不同的平台上执行时,会引发异常。

更好地说,我正在 Linux 环境上进行开发,并且我正在为 Linux 和 Windows 打包我的应用程序,Linux 应用程序运行良好,而 Windows 应用程序则不行。

问题是:Chromium 是在 npm install 时下载的,并且是根据当前平台有选择地完成的。作为当前的 Linux 平台,这个版本的 Chromium 会无论如何发布在每个平台的应用程序上。

我应该能够执行以下操作之一:

  1. 在 npm 安装时下载全平台 Chromium(在开发计算机上)
  2. 在打包时有选择地下载 Chromium(仍在开发计算机上)
  3. 强制我的用户在运行时下载 Chromium(例如第一次使用时)

问题是我还没有找到任何可以用于此目的的 Puppeteer 配置。

谢谢

最佳答案

Chromium 下载是在 npm 安装期间由 node_modules/puppeteer/install.js 完成的。您可以从应用程序的构建脚本中调用此代码。例如:

const Downloader = require('puppeteer/lib/Downloader');
const revision = require('puppeteer/package').puppeteer.chromium_revision;

Downloader.createDefault().downloadRevision('win64', revision, () => undefined)
  .then(() => { console.log('Done!') })
  .catch(err => { console.log('Error', err) })

关于electron - Puppeteer:下载适用于不同平台的 Chromium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47757720/

相关文章:

node.js - pg(postgresql) 无法在使用 pg 库的 Node js 中工作

javascript - ffmpeg命令行代码转换为fluent-ffmpeg

javascript - 在 Electron 中获取渲染器进程 ID

macos - 在Mac上为基于Electron的App提供不同的Dock和Tray图标吗?

node.js - 我在连接到 sqlite3 数据库时遇到错误

javascript - Chrome Extension : window. innerWidth = 0 ?//bonus: 最大化窗口

google-chrome - 在 Chromium 重新启动之前,WebSocket 不会连接到特定主机

javascript - 无法使用 Puppeteer 从 dolartoday.com 抓取输入值

javascript - 捕获 waitForSelector 错误

javascript - Puppeteer 检测新选项卡何时打开并获取页面对象