在 Miniflare 中运行 Puppeteer(本地 Cloudflare 工作模拟器)

问题描述 投票:0回答:1

是否可以使用

@cloudflare/puppeteer
进行 Cloudflare 工作人员的本地开发?

到目前为止我尝试过的事情

index.js(与官方示例相同):

import puppeteer from "@cloudflare/puppeteer";

export default {
    async fetch(request, env, ctx) {
        const browser = await puppeteer.launch(env.MYBROWSER);
        const page = await browser.newPage();
        await page.goto("https://example.com");
        const metrics = await page.metrics();
        await browser.close();
        return Response.json(metrics);  
    },
};

牧马人.toml

#:schema node_modules/wrangler/config-schema.json
name = "my-first-worker"
main = "src/index.js"
compatibility_date = "2024-04-05"
compatibility_flags = ["nodejs_compat"]

browser = { binding = "MYBROWSER" }

使用

wrangler dev
运行此命令,然后调用工作线程会引发以下错误:

[wrangler:err] TypeError: Cannot read properties of undefined (reading 'fetch')
    at PuppeteerWorkers.launch (file:///home/duranda/my-first-worker/node_modules/@cloudflare/puppeteer/src/puppeteer-core.ts:107:32)
    at Object.fetch (file:///home/duranda/my-first-worker/src/index.js:15:35)
    at fetchDispatcher (file:///home/duranda/my-first-worker/.wrangler/tmp/bundle-3eSyZw/middleware-loader.entry.ts:56:17)
    at __facade_invokeChain__ (file:///home/duranda/my-first-worker/node_modules/wrangler/templates/middleware/common.ts:53:9)
    at Object.next (file:///home/duranda/my-first-worker/node_modules/wrangler/templates/middleware/common.ts:50:11)
    at jsonError (file:///home/duranda/my-first-worker/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts:22:30)
    at __facade_invokeChain__ (file:///home/duranda/my-first-worker/node_modules/wrangler/templates/middleware/common.ts:53:9)
    at Object.next (file:///home/duranda/my-first-worker/node_modules/wrangler/templates/middleware/common.ts:50:11)
    at drainBody (file:///home/duranda/my-first-worker/node_modules/wrangler/templates/middleware/middleware-ensure-req-body-drained.ts:5:30)
    at __facade_invokeChain__ (file:///home/duranda/my-first-worker/node_modules/wrangler/templates/middleware/common.ts:53:9)
puppeteer cloudflare-workers wrangler
1个回答
0
投票

他们的文档说本地模式不支持浏览器渲染,因此需要

--remote
选项enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.