Apple Silicon / M1 で Puppeteer のインストールに失敗する場合

1 min read読了の目安(約1000字

なるべくコマンドライン以外の作業をしたくない人向け:

brew で Chromium をインストール:

$ brew install chromium
$ `which chromium`

[npm/yarn/pnpm] install で Chromium の自動ダウンロードが始まらないように環境変数を設定しておく(個人的には .env に書いといて M1の人だけ $ source .env する運用が楽だなと思います):

.env
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
export PUPPETEER_EXECUTABLE_PATH=`which chromium`

Puppeteer には /usr/bin/chromium-browser がベタ書きされていてパッチを当てなきゃいけないみたいな話もあるのだが、実際は puppeteer.launch のオプションで実行時に指定できる。何らかのフレームワークが Puppeteer を隠蔽しきっていてこのオプションを触れないとかでなければこっちのほうが楽。

const browser = await puppeteer.launch({
    executablePath: process.env[PUPPETEER_EXECUTABLE_PATH],
})

参考