From d1b0d0d58f8cfe85777dc374e93011883bc715af Mon Sep 17 00:00:00 2001 From: Mammoth Date: Fri, 27 Nov 2020 14:21:49 -0600 Subject: [PATCH] add puppeteer settings Puppeteer Browser Settings - adding ability to set puppeteer browser options from package json. ** example use case: firestore cli keeps an open socket connection, need to set waitUntil to networkidle2 to prevent error precomiling files ( + needed devtools option set to true to be able to debug network connection in non-headless browser to figure out network issues) --- index.js | 4 ++++ src/puppeteer_utils.js | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index c0d9f91a..3d16a728 100644 --- a/index.js +++ b/index.js @@ -29,6 +29,10 @@ const defaultOptions = { puppeteerArgs: [], puppeteerExecutablePath: undefined, puppeteerIgnoreHTTPSErrors: false, + // this will be merged into browser.launch + // see https://pptr.dev/#?product=Puppeteer&version=v5.5.0&show=api-puppeteerlaunchoptions + // for all options + puppeteerSettings: {}, publicPath: "/", minifyCss: {}, minifyHtml: { diff --git a/src/puppeteer_utils.js b/src/puppeteer_utils.js index 820cded0..c9bd841b 100644 --- a/src/puppeteer_utils.js +++ b/src/puppeteer_utils.js @@ -199,7 +199,8 @@ const crawl = async opt => { args: options.puppeteerArgs, executablePath: options.puppeteerExecutablePath, ignoreHTTPSErrors: options.puppeteerIgnoreHTTPSErrors, - handleSIGINT: false + handleSIGINT: false, + ...options.puppeteerSettings }); /** @@ -238,7 +239,7 @@ const crawl = async opt => { await page.setUserAgent(options.userAgent); const tracker = createTracker(page); try { - await page.goto(pageUrl, { waitUntil: "networkidle0" }); + await page.goto(pageUrl, { waitUntil: options.puppeteerSettings["waitUntil"] || "networkidle0" }); } catch (e) { e.message = augmentTimeoutError(e.message, tracker); throw e;