397 文字
2 分
Netlify と Playwright とビルドエラー
Astro ブログで図表を出力できるよう rehype-mermaid を利用し, 生成は Playwright に丸投げする方法を採用している.
問題
Netlify でも動作できるようフォーラムの情報を頼りに package.json
に次のような記述をした.
"scripts": {
...,
"postinstall": "pnpm dlx playwright-core install chromium"
},
...
(前略)少し前までは特に問題もなく(中略)ある日突然デプロイに失敗していた.
...
browserType.launch: Executable doesn't exist at /opt/buildhome/.cache/ms-playwright/chromium_headless_shell-1148/chrome-linux/headless_shell
╔═════════════════════════════════════════════════════════════════════════╗
12:59:07 PM: ║ Looks like Playwright Test or Playwright was just installed or updated. ║
12:59:07 PM: ║ Please run the following command to download new browsers: ║
12:59:07 PM: ║ ║
12:59:07 PM: ║ pnpm exec playwright install ║
12:59:07 PM: ║ ║
12:59:07 PM: ║ <3 Playwright Team ║
12:59:07 PM: ╚═════════════════════════════════════════════════════════════════════════╝
12:59:07 PM: at getBrowser (/opt/build/repo/node_modules/.pnpm/mermaid-isomorphic@3.0.0_playwright@1.49.1/node_modules/mermaid-isomorphic/dist/mermaid-isomorphic.js:93:39)
...
実行ファイルが存在しないとは理解に苦しむが, デプロイが成功していた時と比べると playwright build v1155
となっており, バージョンが異なるようだ.
...
12:58:39 PM: Already up to date
12:58:39 PM: > fuwari@0.0.1 postinstall /opt/build/repo
12:58:39 PM: > pnpm dlx playwright-core install chromium
12:58:40 PM: Progress: resolved 1, reused 0, downloaded 0, added 0
12:58:40 PM: Packages: +1
12:58:40 PM: +
12:58:40 PM: Progress: resolved 1, reused 0, downloaded 1, added 1, done
12:58:41 PM: Downloading Chromium 133.0.6943.16 (playwright build v1155) from https://cdn.playwright.dev/dbazure/download/playwright/builds/chromium/1155/chromium-linux.zip
...
原因
More concretely pnpm dlx / pnpx does not respect the version specified in package.json, but npx does.
叩くコマンドによって挙動が違うようだ.
解決策
package.json
を次のように変更する.
"scripts": {
...,
"postinstall": "pnpm exec playwright install chromium"
},
...
今回の環境では playwright build v1148
となり問題が解消した.
...
6:05:19 PM: Already up to date
6:05:20 PM: > fuwari@0.0.1 postinstall /opt/build/repo
6:05:20 PM: > pnpm exec playwright install chromium
6:05:21 PM: Downloading Chromium 131.0.6778.33 (playwright build v1148) from https://playwright.azureedge.net/builds/chromium/1148/chromium-linux.zip
...
Netlify と Playwright とビルドエラー
https://hasenpfote.netlify.app/posts/netlify-playwright-build-error/