使用puppeteer-extra插件和webpack nextjs 13时“无法静态分析require”

inkz8wg9  于 2023-10-19  发布在  Webpack
关注(0)|答案(1)|浏览(268)

我试图在 puppet 集群中使用插件,但它不工作。它可以在没有插件的情况下工作,但当插件被添加时就不行了。
下面是我的代码:

import { NextResponse } from "next/server";
import { Cluster } from "puppeteer-cluster";
// import vanillaPuppeteer from "puppeteer";
import { addExtra } from "puppeteer-extra";
import Stealth from "puppeteer-extra-plugin-stealth";
import Recaptcha from "puppeteer-extra-plugin-recaptcha";

export async function POST(req: Request) {
  const body = await req.json();

  const puppeteer = addExtra(vanillaPuppeteer);
  puppeteer.use(Stealth());
  puppeteer.use(Recaptcha());

  const cluster = await Cluster.launch({
    concurrency: Cluster.CONCURRENCY_CONTEXT,
    maxConcurrency: 3,
  });
// ...

我试着运行它,但它返回这个错误:

Cannot statically analyse 'require(…, …)' in line 7

我试过使用lazy loader,但它不工作。

bkkx9g8r

bkkx9g8r1#

现在,工作方法是将puppeteer-extra及其插件添加到next.config.js中的serverComponentsExternalPackages字段:

/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    serverComponentsExternalPackages: [
      'puppeteer-extra', 
      'puppeteer-extra-plugin-stealth',
      'puppeteer-extra-plugin-recaptcha',
    ],
  },
};

module.exports = nextConfig;

阅读更多关于serverComponentsExternalPackageshttps://nextjs.org/docs/app/api-reference/next-config-js/serverComponentsExternalPackages

相关问题