fix: use dynamic imports for puppeteer to prevent Next.js build errors
puppeteer-extra cannot be statically imported in Next.js server bundles. Using dynamic import() so puppeteer is only loaded at runtime, not at build time.
This commit is contained in:
1 parent
a338f9cb72
commit
af8b59e024
1 file changed
+5
-7
@@ -1,18 +1,16 @@
|
|||||||
import puppeteer from "puppeteer-extra";
|
|
||||||
import StealthPlugin from "puppeteer-extra-plugin-stealth";
|
|
||||||
|
|
||||||
puppeteer.use(StealthPlugin());
|
|
||||||
|
|
||||||
const UA =
|
const UA =
|
||||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) " +
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) " +
|
||||||
"AppleWebKit/537.36 (KHTML, like Gecko) " +
|
"AppleWebKit/537.36 (KHTML, like Gecko) " +
|
||||||
"Chrome/125.0.0.0 Safari/537.36";
|
"Chrome/125.0.0.0 Safari/537.36";
|
||||||
|
|
||||||
let browser: Awaited<ReturnType<typeof puppeteer.launch>> | null = null;
|
let browser: any = null;
|
||||||
|
|
||||||
async function getBrowser() {
|
async function getBrowser() {
|
||||||
if (browser) return browser;
|
if (browser) return browser;
|
||||||
browser = await puppeteer.launch({
|
const puppeteer = await import("puppeteer-extra");
|
||||||
|
const StealthPlugin = await import("puppeteer-extra-plugin-stealth");
|
||||||
|
puppeteer.default.use(StealthPlugin.default());
|
||||||
|
browser = await puppeteer.default.launch({
|
||||||
headless: true,
|
headless: true,
|
||||||
args: [
|
args: [
|
||||||
"--no-sandbox",
|
"--no-sandbox",
|
||||||
|
|||||||
Reference in new issue
Block a user