Lazy-load puppeteer to fix tsx watch hanging on startup

Puppeteer import at top level was blocking tsx watch mode,
preventing the server from starting. Now imported dynamically
only when a JS-rendered store is actually scraped.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
mariosemes
2026-03-26 22:08:09 +01:00
parent 42f2cab158
commit fe56c3b17e
2 changed files with 5 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
import puppeteer, { type Browser } from 'puppeteer';
import type { Browser } from 'puppeteer';
import type { Store } from '../models/store.js';
import type { ScrapedItem } from './result-parser.js';
@@ -10,7 +10,8 @@ const NAVIGATION_TIMEOUT = 20_000;
async function getBrowser(): Promise<Browser> {
if (browser && browser.connected) return browser;
browser = await puppeteer.launch({
const puppeteer = await import('puppeteer');
browser = await puppeteer.default.launch({
headless: true,
args: [
'--no-sandbox',