6fd5e7c9ec
PR #4202 introduced dynamic OG via app/opengraph-image.tsx + app/twitter-image.tsx using next/og ImageResponse. Build succeeds, but deploy to Cloudflare Workers fails: ✘ [ERROR] Unable to extract npm package name from .open-next/server-functions/default/node_modules/next/dist/compiled/ @vercel/og/yoga.wasm?module [plugin wrangler-module-collector] ##[error]The process '/home/runner/.bun/bin/bunx' failed with exit code 1 Root cause: wrangler-module-collector can't resolve @vercel/og's bundled yoga.wasm import from the OpenNext server-functions output. Known regression in @opennextjs/cloudflare interop with @vercel/og (related to issue #1163 + PRs #1169/#1176 in opennextjs/opennextjs-cloudflare, plus newer bundling discussion in #1221). Fix: switch to Next.js file convention static OG images. Place app/opengraph-image.png + app/twitter-image.png (the same 1200x630 PNG that was being rendered dynamically). Next.js auto-emits og:image + twitter:image metadata pointing at these routes, with correct og:image:width/height/type tags. No @vercel/og, no WASM, no edge runtime. The static PNGs were generated from PR #4202's dynamic ImageResponse during local QA - identical visual output: dark #0a0a0a background, cyan #00d4ff brand wordmark, headline, install command pill, terminal cursor. Build verified: /opengraph-image.png and /twitter-image.png now show as static routes (0 B route handler size). First-load JS unchanged. Future-revisit: re-enable dynamic OG when @opennextjs/cloudflare ships the fixes from PRs #1169/#1176/#1221 stable for Next 15.x deploys.
37 KiB
1200x630px
37 KiB
1200x630px