我正在使用Puppeteer构建一个UI-automator,我将其作为Electron-packaged应用程序发送。除了这个问题外,它的工作非常顺畅:
当应用程序在不同于打包应用程序的平台上执行时,会引发 {strong>Chromium is not downloaded
异常。
更好地说,我在Linux环境中开发并且我在Linux和Windows上打包我的应用程序,Linux应用程序运行良好,Windows应用程序没有。
问题是: Chromium是在npm install
时间下载的,并且它是根据当前平台有选择地完成的。作为当前的平台Linux,这个非常版本的Chromium随后在每个平台的应用程序上发布。
我应该能够做到以下其中一项:
问题是我还没有找到任何可用于此目的的Puppeteer配置。
由于
答案 0 :(得分:3)
在npm安装期间,node_modules/puppeteer/install.js
完成了Chromium下载。您可以从应用程序的构建脚本中调用此代码。例如:
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) })
答案 1 :(得分:0)
@Pasi答案的更新,以下内容适用于"puppeteer": "^1.15.0"
const puppeteer = require('puppeteer');
const browserFetcher = puppeteer.createBrowserFetcher({ platform: 'win64' });
const revision = require('puppeteer/package').puppeteer.chromium_revision;
browserFetcher.download(revision)
.then(() => console.log('Done'))
.catch(error => console.log('Error', error))