From d6aa76b14bab4beb5b6219b87467095ec9e5104a Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Wed, 29 Oct 2025 22:41:11 -0700 Subject: [PATCH 1/2] Update parallel routes in build-complete --- packages/next/src/build/adapter/build-complete.ts | 12 ++++++++++++ .../app/node-app/@dialog/[slug]/page.tsx | 7 +++++++ .../adapter-config/app/node-app/@dialog/default.tsx | 3 +++ .../adapter-config/app/node-app/[slug]/page.tsx | 3 +++ .../adapter-config/app/node-app/layout.tsx | 8 ++++++++ test/production/adapter-config/my-adapter.mjs | 1 + 6 files changed, 34 insertions(+) create mode 100644 test/production/adapter-config/app/node-app/@dialog/[slug]/page.tsx create mode 100644 test/production/adapter-config/app/node-app/@dialog/default.tsx create mode 100644 test/production/adapter-config/app/node-app/[slug]/page.tsx create mode 100644 test/production/adapter-config/app/node-app/layout.tsx diff --git a/packages/next/src/build/adapter/build-complete.ts b/packages/next/src/build/adapter/build-complete.ts index ce32c1f307b0e..e3d77bf2cfd47 100644 --- a/packages/next/src/build/adapter/build-complete.ts +++ b/packages/next/src/build/adapter/build-complete.ts @@ -966,6 +966,18 @@ export async function handleBuildComplete({ return {} as Record } ) + + // If this is a parallel route we just need to merge + // the assets as they share the same pathname + const existingOutput = appOutputMap[normalizedPage] + if (existingOutput) { + Object.assign(existingOutput.assets, assets) + existingOutput.assets[path.relative(tracingRoot, pageFile)] = + pageFile + + continue + } + const functionConfig = functionsConfigManifest.functions[normalizedPage] || {} diff --git a/test/production/adapter-config/app/node-app/@dialog/[slug]/page.tsx b/test/production/adapter-config/app/node-app/@dialog/[slug]/page.tsx new file mode 100644 index 0000000000000..ef1b249cc1847 --- /dev/null +++ b/test/production/adapter-config/app/node-app/@dialog/[slug]/page.tsx @@ -0,0 +1,7 @@ +export default function Page() { + return ( + <> +

@dialog parallel route for /node-app/[slug]

+ + ) +} diff --git a/test/production/adapter-config/app/node-app/@dialog/default.tsx b/test/production/adapter-config/app/node-app/@dialog/default.tsx new file mode 100644 index 0000000000000..31f55b1a9cf6c --- /dev/null +++ b/test/production/adapter-config/app/node-app/@dialog/default.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return 'default dialog' +} diff --git a/test/production/adapter-config/app/node-app/[slug]/page.tsx b/test/production/adapter-config/app/node-app/[slug]/page.tsx new file mode 100644 index 0000000000000..79b2a33b9cedc --- /dev/null +++ b/test/production/adapter-config/app/node-app/[slug]/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return <>/node-app/[slug] +} diff --git a/test/production/adapter-config/app/node-app/layout.tsx b/test/production/adapter-config/app/node-app/layout.tsx new file mode 100644 index 0000000000000..3a879d55332f3 --- /dev/null +++ b/test/production/adapter-config/app/node-app/layout.tsx @@ -0,0 +1,8 @@ +export default function Layout({ dialog, children }: any) { + return ( + <> + {dialog} + {children} + + ) +} diff --git a/test/production/adapter-config/my-adapter.mjs b/test/production/adapter-config/my-adapter.mjs index e961d8308cf72..212cc5af9fa0c 100644 --- a/test/production/adapter-config/my-adapter.mjs +++ b/test/production/adapter-config/my-adapter.mjs @@ -5,6 +5,7 @@ import fs from 'fs' const myAdapter = { name: 'my-custom-adapter', modifyConfig: (config, { phase }) => { + if (process.env.NODE_ENV !== 'production') return config if (typeof phase !== 'string') { throw new Error(`invalid phase value provided to modifyConfig ${phase}`) } From 6f29b7451f07a9de65f9b7a2348d5de5e8899614 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Thu, 30 Oct 2025 09:41:05 -0700 Subject: [PATCH 2/2] update test --- test/production/adapter-config/adapter-config-export.test.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/production/adapter-config/adapter-config-export.test.ts b/test/production/adapter-config/adapter-config-export.test.ts index 423d61d435b0f..efe0d87374080 100644 --- a/test/production/adapter-config/adapter-config-export.test.ts +++ b/test/production/adapter-config/adapter-config-export.test.ts @@ -23,6 +23,9 @@ describe('adapter-config export', () => { 'pages/api/node-pages.ts', 'pages/edge-pages/index.tsx', 'pages/node-pages/index.tsx', + 'app/node-app/[slug]/page.tsx', + 'app/node-app/@dialog/default.tsx', + 'app/node-app/@dialog/[slug]/page.tsx', ] for (const file of nonExportFiles) {