puppeteer
Version:
A high-level API to control headless Chrome over the DevTools Protocol
44 lines (39 loc) • 1.24 kB
JavaScript
/**
* @license
* Copyright 2017 Google Inc.
* SPDX-License-Identifier: Apache-2.0
*/
/**
* This file is part of public API.
*
* By default, the `puppeteer` package runs this script during the installation
* process unless one of the env flags is provided.
* `puppeteer-core` package doesn't include this step at all. However, it's
* still possible to install a supported browser using this script when
* necessary.
*/
/**
* @returns {import("puppeteer/internal/node/install.js")}
*/
async function importInstaller() {
try {
return await import('puppeteer/internal/node/install.js');
} catch (error) {
// Add more logging when the GitHub Action Debugging option is set
// https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables
if (process.env['RUNNER_DEBUG']) {
console.error(error);
}
console.warn(
'Skipping browser installation because the Puppeteer build is not available. Run `npm install` again after you have re-built Puppeteer.',
);
process.exit(0);
}
}
try {
const {downloadBrowsers} = await importInstaller();
downloadBrowsers();
} catch (error) {
console.warn('Browser download failed', error);
}