ChromeNotInstalledError while using chrome-launcher npm package

1k Views Asked by At

I am using chrome-launcher for running lighthouse programmatically. It works fine locally but when I run it on azure I am getting an error. On this statement const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']}); I am getting the following error:

ChromeNotInstalledErrorat new LauncherError (C:\home\site\wwwroot\node_modules\chrome-launcher\dist\utils.js:37:22)at new ChromeNotInstalledError (C:\home\site\wwwroot\node_modules\chrome-launcher\dist\utils.js:68:9){message: 'No Chrome installations found.',code: 'ERR_LAUNCHER_NOT_INSTALLED'}

How can I solve this?

1

There are 1 best solutions below

0
nosvalds On

You need to install Chrome on the Azure Function app somehow.

One way to do this is by using an npm dependency that installs Chrome as part of its install process. Examples of this are puppeteer and playwright. Although then you end up with some unnecessary dependencies.

You could also have a startup script or something that installs Chrome before running chrome-launcher/lighthouse. You'll need to tell crome-launcher where Chrome is installed if it's not a standard place using chromePath options or CHROME_PATH environment variable link.

You also have to ensure you do a Remote Build for the Function app.

You will also run into this error, which has a possible workaround: https://github.com/GoogleChrome/chrome-launcher/issues/188

Overall it's not easy. I actually ended up moving my workflow to GitHub Actions instead as Chrome is already installed on their runner images.

See: https://anthonychu.ca/post/azure-functions-headless-chromium-puppeteer-playwright/