mirror of
https://github.com/ksyasuda/dotfiles.git
synced 2026-03-20 06:11:27 -07:00
1.8 KiB
1.8 KiB
Configuration & Setup
Installation
npm install @cloudflare/puppeteer # or @cloudflare/playwright
Use Cloudflare packages - standard puppeteer/playwright won't work in Workers.
wrangler.json
{
"name": "browser-worker",
"main": "src/index.ts",
"compatibility_date": "2025-01-01",
"compatibility_flags": ["nodejs_compat"],
"browser": {
"binding": "MYBROWSER"
}
}
Required: nodejs_compat flag and browser.binding.
TypeScript
interface Env {
MYBROWSER: Fetcher;
}
export default {
async fetch(request: Request, env: Env): Promise<Response> {
// ...
}
} satisfies ExportedHandler<Env>;
Development
wrangler dev --remote # --remote required for browser binding
Local mode does NOT support Browser Rendering - must use --remote.
REST API
No wrangler config needed. Get API token with "Browser Rendering - Edit" permission.
curl -X POST \
'https://api.cloudflare.com/client/v4/accounts/{accountId}/browser-rendering/screenshot' \
-H 'Authorization: Bearer TOKEN' \
-d '{"url": "https://example.com"}' --output screenshot.png
Requirements
| Requirement | Value |
|---|---|
| Node.js compatibility | nodejs_compat flag |
| Compatibility date | 2023-03-01+ |
| Module format | ES modules only |
| Browser | Chromium 119+ (no Firefox/Safari) |
Not supported: WebGL, WebRTC, extensions, file:// protocol, Service Worker syntax.
Troubleshooting
| Error | Solution |
|---|---|
MYBROWSER is undefined |
Use wrangler dev --remote |
nodejs_compat not enabled |
Add to compatibility_flags |
Module not found |
npm install @cloudflare/puppeteer |
Browser Rendering not available |
Enable in dashboard |