We were making a bot for mastodon that scrapes and posts all the gigs happening in Brighton (follow @gigbot here!) – we were using Puppeteer and Cheerio to scrape the venue pages for listings but while it would woRK on OuR mAChiNe it crapped out whenever we pushed it up to Netlify.
It turned out to be mostly trial and error finding the correct mix of Chromium and Puppeteer-Core that worked on Netlify functions (Node 18) but it mostly boiled down to these settings.
Settings
package.json:
"dependencies": {
"@sparticuz/chromium": "113.0.1",
"puppeteer-core": "20.1.1"
}
netlify.toml:
[functions]
node_bundler = "esbuild"
external_node_modules = ["@sparticuz/chromium"]
.env
CHROME_EXECUTABLE_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
We hope this saves someone else a load of time.