The problem with different @vercel/og resolution for Pages Router and App Router.
First, start the dev server:
$ npm i
$ npm run dev
> repro-next-vercel-og-resolution@0.1.0 dev
> next dev
▲ Next.js 14.3.0-canary.40
- Local: http://localhost:3000
✓ Starting..
✓ Ready in 2.2s
Then, open a new terminal and run the following commands:
$ curl http://localhost:3000/api/pages-route
$ curl http://localhost:3000/api/app-route
Finally, check the output of the dev server.
...
✓ Compiled /api/pages-route in 195ms (65 modules)
node_modules/@vercel/og/dist/index.node.js
GET /api/pages-route 200 in 378ms
✓ Compiled /api/app-route in 247ms (88 modules)
node_modules/next/dist/compiled/@vercel/og/index.node.js
GET /api/app-route 200 in 382ms
Why do Pages Router and App Router resolve @vercel/og
differently?
Surprisingly, when --turbo
option is passed, Pages Router also resolves @vercel/og
to node_modules/next/dist/compiled/@vercel/og/index.node.js
.
$ npm run dev -- --turbo
> repro-next-vercel-og-resolution@0.1.0 dev
> next dev --turbo
▲ Next.js 14.3.0-canary.40 (turbo)
- Local: http://localhost:3000
✓ Starting...
✓ Ready in 967ms
✓ Compiled /api/pages-route in 44ms
node_modules/next/dist/compiled/@vercel/og/index.node.js
GET /api/pages-route 200 in 175ms
✓ Compiled /api/app-route in 72ms
node_modules/next/dist/compiled/@vercel/og/index.node.js
GET /api/app-route 200 in 153ms