From 5a50a9980ff7d55c443656cf1091f756faac82fa Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Mon, 19 Sep 2022 22:24:41 +0200 Subject: [PATCH] Drop legacy RSC server and client extension (#40692) Drop the support for `.server.js` and `.client.js` extension in RSC, only consume the pages with configured file extensions as page entry --- packages/next/server/config.ts | 10 ------- .../{layout.server.js => layout.js} | 0 .../nested/{page.server.js => page.js} | 0 .../nested/{layout.server.js => layout.js} | 0 .../nested/{page.server.js => page.js} | 0 .../slow/{layout.server.js => layout.js} | 0 .../slow/{page.server.js => page.js} | 0 .../ssr-only/{layout.server.js => layout.js} | 0 .../nested/{page.server.js => page.js} | 0 .../slow/{layout.server.js => layout.js} | 0 .../ssr-only/slow/{page.server.js => page.js} | 0 .../{layout.server.js => layout.js} | 0 .../nested/{page.server.js => page.js} | 0 .../slow/{layout.server.js => layout.js} | 0 .../slow/{page.server.js => page.js} | 0 .../[slug]/{page.server.js => page.js} | 0 .../[author]/{layout.server.js => layout.js} | 0 .../blog/[author]/{page.server.js => page.js} | 0 .../app/{layout.server.js => layout.js} | 0 .../{loading.server.js => loading.js} | 0 .../app/ssr-auto/{page.server.js => page.js} | 0 .../{loading.server.js => loading.js} | 0 .../ssr-forced/{page.server.js => page.js} | 0 test/e2e/app-dir/app-static/pages/.gitkeep | 0 .../[projectId]/{page.server.js => page.js} | 0 .../app-dir/app/app/extension/page.server.js | 3 +++ .../app/legacy-extension/page.server.js | 3 +++ .../node-rsc-isr/{page.server.js => page.js} | 0 .../node-rsc-ssg/{page.server.js => page.js} | 0 .../node-rsc-ssr/{page.server.js => page.js} | 0 .../app/node-rsc/{page.server.js => page.js} | 0 test/e2e/switchable-runtime/index.test.ts | 26 ++++++++++++------- 32 files changed, 23 insertions(+), 19 deletions(-) rename test/e2e/app-dir/app-rendering/app/isr-multiple/{layout.server.js => layout.js} (100%) rename test/e2e/app-dir/app-rendering/app/isr-multiple/nested/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/{layout.server.js => layout.js} (100%) rename test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/{layout.server.js => layout.js} (100%) rename test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-rendering/app/ssr-only/{layout.server.js => layout.js} (100%) rename test/e2e/app-dir/app-rendering/app/ssr-only/nested/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-rendering/app/ssr-only/slow/{layout.server.js => layout.js} (100%) rename test/e2e/app-dir/app-rendering/app/ssr-only/slow/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-rendering/app/static-only/{layout.server.js => layout.js} (100%) rename test/e2e/app-dir/app-rendering/app/static-only/nested/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-rendering/app/static-only/slow/{layout.server.js => layout.js} (100%) rename test/e2e/app-dir/app-rendering/app/static-only/slow/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-static/app/blog/[author]/[slug]/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-static/app/blog/[author]/{layout.server.js => layout.js} (100%) rename test/e2e/app-dir/app-static/app/blog/[author]/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-static/app/{layout.server.js => layout.js} (100%) rename test/e2e/app-dir/app-static/app/ssr-auto/{loading.server.js => loading.js} (100%) rename test/e2e/app-dir/app-static/app/ssr-auto/{page.server.js => page.js} (100%) rename test/e2e/app-dir/app-static/app/ssr-forced/{loading.server.js => loading.js} (100%) rename test/e2e/app-dir/app-static/app/ssr-forced/{page.server.js => page.js} (100%) delete mode 100644 test/e2e/app-dir/app-static/pages/.gitkeep rename test/e2e/app-dir/app/app/(newroot)/dashboard/project/[projectId]/{page.server.js => page.js} (100%) create mode 100644 test/e2e/app-dir/app/app/extension/page.server.js create mode 100644 test/e2e/switchable-runtime/app/legacy-extension/page.server.js rename test/e2e/switchable-runtime/app/node-rsc-isr/{page.server.js => page.js} (100%) rename test/e2e/switchable-runtime/app/node-rsc-ssg/{page.server.js => page.js} (100%) rename test/e2e/switchable-runtime/app/node-rsc-ssr/{page.server.js => page.js} (100%) rename test/e2e/switchable-runtime/app/node-rsc/{page.server.js => page.js} (100%) diff --git a/packages/next/server/config.ts b/packages/next/server/config.ts index 07406b6b32c0..94e9a7110a78 100644 --- a/packages/next/server/config.ts +++ b/packages/next/server/config.ts @@ -702,16 +702,6 @@ function assignDefaults(userConfig: { [key: string]: any }) { } } - if (result.experimental?.serverComponents) { - const pageExtensions: string[] = [] - ;(result.pageExtensions || []).forEach((ext) => { - pageExtensions.push(ext) - pageExtensions.push(`server.${ext}`) - pageExtensions.push(`client.${ext}`) - }) - result.pageExtensions = pageExtensions - } - if (result.devIndicators?.buildActivityPosition) { const { buildActivityPosition } = result.devIndicators const allowedValues = [ diff --git a/test/e2e/app-dir/app-rendering/app/isr-multiple/layout.server.js b/test/e2e/app-dir/app-rendering/app/isr-multiple/layout.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/isr-multiple/layout.server.js rename to test/e2e/app-dir/app-rendering/app/isr-multiple/layout.js diff --git a/test/e2e/app-dir/app-rendering/app/isr-multiple/nested/page.server.js b/test/e2e/app-dir/app-rendering/app/isr-multiple/nested/page.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/isr-multiple/nested/page.server.js rename to test/e2e/app-dir/app-rendering/app/isr-multiple/nested/page.js diff --git a/test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/layout.server.js b/test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/layout.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/layout.server.js rename to test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/layout.js diff --git a/test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/page.server.js b/test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/page.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/page.server.js rename to test/e2e/app-dir/app-rendering/app/isr-ssr-combined/nested/page.js diff --git a/test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/layout.server.js b/test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/layout.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/layout.server.js rename to test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/layout.js diff --git a/test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/page.server.js b/test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/page.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/page.server.js rename to test/e2e/app-dir/app-rendering/app/isr-ssr-combined/slow/page.js diff --git a/test/e2e/app-dir/app-rendering/app/ssr-only/layout.server.js b/test/e2e/app-dir/app-rendering/app/ssr-only/layout.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/ssr-only/layout.server.js rename to test/e2e/app-dir/app-rendering/app/ssr-only/layout.js diff --git a/test/e2e/app-dir/app-rendering/app/ssr-only/nested/page.server.js b/test/e2e/app-dir/app-rendering/app/ssr-only/nested/page.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/ssr-only/nested/page.server.js rename to test/e2e/app-dir/app-rendering/app/ssr-only/nested/page.js diff --git a/test/e2e/app-dir/app-rendering/app/ssr-only/slow/layout.server.js b/test/e2e/app-dir/app-rendering/app/ssr-only/slow/layout.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/ssr-only/slow/layout.server.js rename to test/e2e/app-dir/app-rendering/app/ssr-only/slow/layout.js diff --git a/test/e2e/app-dir/app-rendering/app/ssr-only/slow/page.server.js b/test/e2e/app-dir/app-rendering/app/ssr-only/slow/page.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/ssr-only/slow/page.server.js rename to test/e2e/app-dir/app-rendering/app/ssr-only/slow/page.js diff --git a/test/e2e/app-dir/app-rendering/app/static-only/layout.server.js b/test/e2e/app-dir/app-rendering/app/static-only/layout.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/static-only/layout.server.js rename to test/e2e/app-dir/app-rendering/app/static-only/layout.js diff --git a/test/e2e/app-dir/app-rendering/app/static-only/nested/page.server.js b/test/e2e/app-dir/app-rendering/app/static-only/nested/page.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/static-only/nested/page.server.js rename to test/e2e/app-dir/app-rendering/app/static-only/nested/page.js diff --git a/test/e2e/app-dir/app-rendering/app/static-only/slow/layout.server.js b/test/e2e/app-dir/app-rendering/app/static-only/slow/layout.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/static-only/slow/layout.server.js rename to test/e2e/app-dir/app-rendering/app/static-only/slow/layout.js diff --git a/test/e2e/app-dir/app-rendering/app/static-only/slow/page.server.js b/test/e2e/app-dir/app-rendering/app/static-only/slow/page.js similarity index 100% rename from test/e2e/app-dir/app-rendering/app/static-only/slow/page.server.js rename to test/e2e/app-dir/app-rendering/app/static-only/slow/page.js diff --git a/test/e2e/app-dir/app-static/app/blog/[author]/[slug]/page.server.js b/test/e2e/app-dir/app-static/app/blog/[author]/[slug]/page.js similarity index 100% rename from test/e2e/app-dir/app-static/app/blog/[author]/[slug]/page.server.js rename to test/e2e/app-dir/app-static/app/blog/[author]/[slug]/page.js diff --git a/test/e2e/app-dir/app-static/app/blog/[author]/layout.server.js b/test/e2e/app-dir/app-static/app/blog/[author]/layout.js similarity index 100% rename from test/e2e/app-dir/app-static/app/blog/[author]/layout.server.js rename to test/e2e/app-dir/app-static/app/blog/[author]/layout.js diff --git a/test/e2e/app-dir/app-static/app/blog/[author]/page.server.js b/test/e2e/app-dir/app-static/app/blog/[author]/page.js similarity index 100% rename from test/e2e/app-dir/app-static/app/blog/[author]/page.server.js rename to test/e2e/app-dir/app-static/app/blog/[author]/page.js diff --git a/test/e2e/app-dir/app-static/app/layout.server.js b/test/e2e/app-dir/app-static/app/layout.js similarity index 100% rename from test/e2e/app-dir/app-static/app/layout.server.js rename to test/e2e/app-dir/app-static/app/layout.js diff --git a/test/e2e/app-dir/app-static/app/ssr-auto/loading.server.js b/test/e2e/app-dir/app-static/app/ssr-auto/loading.js similarity index 100% rename from test/e2e/app-dir/app-static/app/ssr-auto/loading.server.js rename to test/e2e/app-dir/app-static/app/ssr-auto/loading.js diff --git a/test/e2e/app-dir/app-static/app/ssr-auto/page.server.js b/test/e2e/app-dir/app-static/app/ssr-auto/page.js similarity index 100% rename from test/e2e/app-dir/app-static/app/ssr-auto/page.server.js rename to test/e2e/app-dir/app-static/app/ssr-auto/page.js diff --git a/test/e2e/app-dir/app-static/app/ssr-forced/loading.server.js b/test/e2e/app-dir/app-static/app/ssr-forced/loading.js similarity index 100% rename from test/e2e/app-dir/app-static/app/ssr-forced/loading.server.js rename to test/e2e/app-dir/app-static/app/ssr-forced/loading.js diff --git a/test/e2e/app-dir/app-static/app/ssr-forced/page.server.js b/test/e2e/app-dir/app-static/app/ssr-forced/page.js similarity index 100% rename from test/e2e/app-dir/app-static/app/ssr-forced/page.server.js rename to test/e2e/app-dir/app-static/app/ssr-forced/page.js diff --git a/test/e2e/app-dir/app-static/pages/.gitkeep b/test/e2e/app-dir/app-static/pages/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/test/e2e/app-dir/app/app/(newroot)/dashboard/project/[projectId]/page.server.js b/test/e2e/app-dir/app/app/(newroot)/dashboard/project/[projectId]/page.js similarity index 100% rename from test/e2e/app-dir/app/app/(newroot)/dashboard/project/[projectId]/page.server.js rename to test/e2e/app-dir/app/app/(newroot)/dashboard/project/[projectId]/page.js diff --git a/test/e2e/app-dir/app/app/extension/page.server.js b/test/e2e/app-dir/app/app/extension/page.server.js new file mode 100644 index 000000000000..6e4c13806737 --- /dev/null +++ b/test/e2e/app-dir/app/app/extension/page.server.js @@ -0,0 +1,3 @@ +export default function Page() { + return

Result Page

+} diff --git a/test/e2e/switchable-runtime/app/legacy-extension/page.server.js b/test/e2e/switchable-runtime/app/legacy-extension/page.server.js new file mode 100644 index 000000000000..3fd783a5841a --- /dev/null +++ b/test/e2e/switchable-runtime/app/legacy-extension/page.server.js @@ -0,0 +1,3 @@ +export default function Page() { + return

This file won't be treated as entry page file

+} diff --git a/test/e2e/switchable-runtime/app/node-rsc-isr/page.server.js b/test/e2e/switchable-runtime/app/node-rsc-isr/page.js similarity index 100% rename from test/e2e/switchable-runtime/app/node-rsc-isr/page.server.js rename to test/e2e/switchable-runtime/app/node-rsc-isr/page.js diff --git a/test/e2e/switchable-runtime/app/node-rsc-ssg/page.server.js b/test/e2e/switchable-runtime/app/node-rsc-ssg/page.js similarity index 100% rename from test/e2e/switchable-runtime/app/node-rsc-ssg/page.server.js rename to test/e2e/switchable-runtime/app/node-rsc-ssg/page.js diff --git a/test/e2e/switchable-runtime/app/node-rsc-ssr/page.server.js b/test/e2e/switchable-runtime/app/node-rsc-ssr/page.js similarity index 100% rename from test/e2e/switchable-runtime/app/node-rsc-ssr/page.server.js rename to test/e2e/switchable-runtime/app/node-rsc-ssr/page.js diff --git a/test/e2e/switchable-runtime/app/node-rsc/page.server.js b/test/e2e/switchable-runtime/app/node-rsc/page.js similarity index 100% rename from test/e2e/switchable-runtime/app/node-rsc/page.server.js rename to test/e2e/switchable-runtime/app/node-rsc/page.js diff --git a/test/e2e/switchable-runtime/index.test.ts b/test/e2e/switchable-runtime/index.test.ts index 5485116ebc5c..077efe404696 100644 --- a/test/e2e/switchable-runtime/index.test.ts +++ b/test/e2e/switchable-runtime/index.test.ts @@ -161,6 +161,14 @@ describe('Switchable runtime', () => { ) }) + it('should not consume server.js file extension', async () => { + const { status } = await fetchViaHTTP( + context.appPort, + '/legacy-extension' + ) + expect(status).toBe(404) + }) + it('should build /api/hello and /api/edge as an api route with edge runtime', async () => { let response = await fetchViaHTTP(context.appPort, '/api/hello') let text = await response.text() @@ -216,7 +224,7 @@ describe('Switchable runtime', () => { export const config = { runtime: 'experimental-edge', } - + export default () => new Response('edge response') ` ) @@ -246,7 +254,7 @@ describe('Switchable runtime', () => { export const config = { runtime: 'experimental-edge', } - + export default () => new Response('edge response again') ` ) @@ -327,7 +335,7 @@ describe('Switchable runtime', () => { export const config = { runtime: 'experimental-edge', } - + export default () => new Response('edge response') ` ) @@ -360,7 +368,7 @@ describe('Switchable runtime', () => { export const config = { runtime: 'experimental-edge', } - + export default => new Response('edge response') ` ) @@ -378,7 +386,7 @@ describe('Switchable runtime', () => { export const config = { runtime: 'experimental-edge', } - + ` ) await check( @@ -400,7 +408,7 @@ describe('Switchable runtime', () => { export default function Page() { return

Hello from page with invalid type

} - + export const config = { runtime: 10, } @@ -421,7 +429,7 @@ describe('Switchable runtime', () => { export default function Page() { return

Hello from page with invalid runtime

} - + export const config = { runtime: "asd" } @@ -442,11 +450,11 @@ describe('Switchable runtime', () => { export default function Page() { return

Hello from page without errors

} - + export const config = { runtime: 'experimental-edge', } - + ` ) await check(