diff --git a/packages/next/src/build/noop-react-dom-server-legacy.ts b/packages/next/src/build/noop-react-dom-server-legacy.ts new file mode 100644 index 0000000000000..21d696afc9537 --- /dev/null +++ b/packages/next/src/build/noop-react-dom-server-legacy.ts @@ -0,0 +1,10 @@ +const ERROR_MESSAGE = + 'Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo.' + +export function renderToString() { + throw new Error(ERROR_MESSAGE) +} + +export function renderToStaticMarkup() { + throw new Error(ERROR_MESSAGE) +} diff --git a/packages/next/src/build/webpack-config.ts b/packages/next/src/build/webpack-config.ts index 71bb0cc96d8b1..8c13fe212bd40 100644 --- a/packages/next/src/build/webpack-config.ts +++ b/packages/next/src/build/webpack-config.ts @@ -222,7 +222,6 @@ function createRSCAliases( 'react/jsx-dev-runtime$': `next/dist/server/future/route-modules/app-page/vendored/shared/react-jsx-dev-runtime`, react$: `next/dist/server/future/route-modules/app-page/vendored/${opts.layer}/react`, 'react-dom$': `next/dist/server/future/route-modules/app-page/vendored/${opts.layer}/react-dom`, - 'react-dom/server.edge$': `next/dist/server/future/route-modules/app-page/vendored/${opts.layer}/react-dom-server-edge`, 'react-server-dom-webpack/client.edge$': `next/dist/server/future/route-modules/app-page/vendored/${opts.layer}/react-server-dom-webpack-client-edge`, }) } else if (opts.layer === WEBPACK_LAYERS.reactServerComponents) { diff --git a/packages/next/webpack.config.js b/packages/next/webpack.config.js index 3debc9156d7ba..7f7f8e26c5ce3 100644 --- a/packages/next/webpack.config.js +++ b/packages/next/webpack.config.js @@ -21,7 +21,7 @@ const pagesExternals = [ ] function makeAppAliases(reactChannel = '') { - const alias = { + return { react$: `next/dist/compiled/react${reactChannel}`, 'react/shared-subset$': `next/dist/compiled/react${reactChannel}/react.shared-subset`, 'react-dom/server-rendering-stub$': `next/dist/compiled/react-dom${reactChannel}/server-rendering-stub`, @@ -36,9 +36,10 @@ function makeAppAliases(reactChannel = '') { 'react-server-dom-webpack/client.edge$': `next/dist/compiled/react-server-dom-webpack${reactChannel}/client.edge`, 'react-server-dom-webpack/server.edge$': `next/dist/compiled/react-server-dom-webpack${reactChannel}/server.edge`, 'react-server-dom-webpack/server.node$': `next/dist/compiled/react-server-dom-webpack${reactChannel}/server.node`, + // optimisations to ignore the legacy build of react-dom/server + './cjs/react-dom-server-legacy.browser.production.min.js': `next/dist/build/noop-react-dom-server-legacy`, + './cjs/react-dom-server-legacy.browser.development.js': `next/dist/build/noop-react-dom-server-legacy`, } - - return alias } const appAliases = makeAppAliases()