Linux上ではなくWindows上のChromeを呼んだり、バイナリダウンロードしたりと、いろいろ試したけどうまくいかなかったんだけど、以下で試したらあっさり動いたのでメモ。
セットアップのコマンド
sudo apt-get install libappindicator1 libappindicator3-1 fonts-liberation curl -O https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i google-chrome-stable_current_amd64.deb PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm i puppeteer-core node yourscript.js
解説
まず、ふつうに npm i puppeteer-core
とやるとChromeのバイナリをダウンロードしてくる処理が走るが、環境変数に PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
をセットするとそのダウンロード処理をスキップできる。
スキップしたら手元にChromeのバイナリが無いことになるが、それは公式から落としてきて使う。
puppeteerを読み込み処理は以下の感じで、あとは普通に処理を書けばよい。
const puppeteer = require("puppeteer-core"); (async () => { const browser = await puppeteer.launch({ executablePath: "/usr/bin/google-chrome-stable" }); const page = await browser.newPage(); try { await page.goto('https://www.google.co.jp/'); await page.screenshot({ path: 'image.png' }); } catch (err) { console.log(err); } finally { await browser.close(); } })();