mirror of
https://github.com/ksyasuda/dotfiles.git
synced 2026-03-20 06:11:27 -07:00
79 lines
1.8 KiB
Markdown
79 lines
1.8 KiB
Markdown
# Configuration & Setup
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install @cloudflare/puppeteer # or @cloudflare/playwright
|
|
```
|
|
|
|
**Use Cloudflare packages** - standard `puppeteer`/`playwright` won't work in Workers.
|
|
|
|
## wrangler.json
|
|
|
|
```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
|
|
|
|
```typescript
|
|
interface Env {
|
|
MYBROWSER: Fetcher;
|
|
}
|
|
|
|
export default {
|
|
async fetch(request: Request, env: Env): Promise<Response> {
|
|
// ...
|
|
}
|
|
} satisfies ExportedHandler<Env>;
|
|
```
|
|
|
|
## Development
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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 |
|