Package detail

find-chrome-bin

mbalabash287.2kMIT2.0.2

Finds local Chromium binary to use it with puppeteer-core

chrome, chromium, headless, find-chrome

readme

Finds local Chromium to use it with puppeteer-core

  • Cross-platform. Works on win, mac and linux.

  • Small. Only 2.4 kB.

  • Zero-dependency.

Usage

By default, it tries to find Chromium v85+ binary with you can then use for launching puppeteer-core for your needs.

Respects CHROMIUM_EXECUTABLE_PATH and PUPPETEER_EXECUTABLE_PATH environment variables for CI purposes.

import { findChrome } from 'find-chrome-bin'
const chromeInfo = await findChrome()
console.log(chromeInfo)
// { browser: "Google Chrome 96.0.4664.45", executablePath: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" }

Specifying min and/or max Chromium versions

You can configure a suitable version using min and max options.

import { findChrome } from 'find-chrome-bin'
const chromeInfo = await findChrome({ min: 95, max: 97 })
console.log(chromeInfo)
// { browser: "Google Chrome 96.0.4664.45", executablePath: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" }

With fallback to download suitable Chromium revision

It can also download suitable Chromium revision as fallback (you have to provide puppeteer-core entity and Chromium revision to download option).

import { join } from 'path'
import puppeteer from 'puppeteer-core'
import { PUPPETEER_REVISIONS } from 'puppeteer-core/lib/cjs/puppeteer/revisions.js'
import { findChrome } from 'find-chrome-bin'

let chromeInfo = await findChrome({
  max: 95,
  download: {
    puppeteer,
    path: join('.', 'chrome'),
    revision: PUPPETEER_REVISIONS.chromium
  }
})
console.log(chromeInfo)
// { browser: "Chromium 94.0.4606.0", executablePath: "/Users/mbalabash/Projects/opensource/find-chrome-bin/example/chrome/mac-911515/chrome-mac/Chromium.app/Contents/MacOS/Chromium" }

Install

npm i find-chrome-bin

or

yarn add find-chrome-bin

License

MIT

changelog

Change Log

This project adheres to Semantic Versioning.

2.0.2

  • Upgraded dependencies

2.0.1

  • Added ESM fields to package.json to resolve npm warnings.

2.0.0

  • Dropped support for CommonJS
  • Switched to using @puppeteer/browsers to download the browser

1.0.5

1.0.4

  • Added support for node-14

  • Dropped commonjs support

1.0.3

  • Added support for new puppeteer BrowserFetcher API

  • Upgraded dependencies

1.0.2

  • Fixed types.

1.0.1

  • Fixed version parser for Chrome versions 100+

  • Fixed npm security issues.

1.0.0

  • Dropped support for node < 16.

  • Fixed npm security issues.

0.1.0

  • Initial release