-
Notifications
You must be signed in to change notification settings - Fork 75
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Hey team 👋🏼,
Redirects/rewrites from the middleware.ts file to Next.js's pages router throws an error.
⨯ Error: Dynamic require of "/.next/server/pages/api/login.js" is not supported
at null.<anonymous>
(file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.wrangler/tmp/dev-FpJJge/worker.js:22:9)
at Object.load
(file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.open-next/server-functions/default/examples/create-next-app/handler.mjs:110733:32)
at RouteModuleLoader.load
(file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.open-next/server-functions/default/examples/create-next-app/handler.mjs:110757:38)
at Object.runApi
(file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.open-next/server-functions/default/examples/create-next-app/handler.mjs:114126:68)
at Object.handleApiRequest
(file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.open-next/server-functions/default/examples/create-next-app/handler.mjs:114292:21)
at Object.handleCatchallRenderRequest
(file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.open-next/server-functions/default/examples/create-next-app/handler.mjs:113812:42)
at async Object.runImpl
(file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.open-next/server-functions/default/examples/create-next-app/handler.mjs:22338:9)
at async Object.handleRequestImpl
(file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.open-next/server-functions/default/examples/create-next-app/handler.mjs:22271:18)
at async processRequest
(file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.open-next/server-functions/default/examples/create-next-app/handler.mjs:116257:5)
at null.<anonymous> (async
file:///Users/REDACTED/Projects/opennextjs-cloudflare/examples/create-next-app/.wrangler/tmp/dev-FpJJge/worker.js:132420:5)
[wrangler:inf] GET / 500 Internal Server Error (76ms)
I have tested this with the new App router by migrating the API route to a Route handler and it works as expected.
Steps to reproduce
- Using the create-next-app example.
- Create a
middleware.tson the root of the./src. - Add the following:
import { NextRequest, NextResponse } from 'next/server';
export async function middleware(req: NextRequest) {
const url = new URL('/api/login', req.url);
return NextResponse.rewrite(url);
}- Create an API route on the pages router
./src/pages/api/login.ts. - Add the following:
import { NextApiRequest, NextApiResponse } from 'next';
export default function login(_: NextApiRequest, res: NextApiResponse) {
res.send('Hello, world!');
}- Run
next devto verify that the middleware redirects correctly. - Run
pnpm preview. - Navigate to the local env, the error thrown.
Error: Dynamic require of "/.next/server/pages/api/login.js" is not supported
Expected behavior
The adapter should support both App Router, and Pages router
@opennextjs/cloudflare version
0.5.1
Wrangler version
3.109.1
next info output
Operating System:
Platform: darwin
Arch: arm64
Version: Darwin Kernel Version 24.2.0: Fri Dec 6 19:04:03 PST 2024; root:xnu-11215.61.5~2/RELEASE_ARM64_T8132
Available memory (MB): 32768
Available CPU cores: 10
Binaries:
Node: 20.9.0
npm: 10.9.1
Yarn: 1.22.19
pnpm: 9.14.3
Relevant Packages:
next: 14.2.24 // An outdated version detected (latest is 15.1.7), upgrade is highly recommended!
eslint-config-next: N/A
react: 18.3.1
react-dom: 18.3.1
typescript: N/A
Next.js Config:
output: N/A
⚠ An outdated version detected (latest is 15.1.7), upgrade is highly recommended!
Please try the latest canary version (`npm install next@canary`) to confirm the issue still exists before creating a new issue.
Read more - https://nextjs.org/docs/messages/opening-an-issueAdditional context
No response
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
Done