Skip to content

Commit fb490b0

Browse files
committed
Fallback to react-dom/server.browser in Pages router if Edge version is not available
`react-dom/server.edge` is not available in React 18. We were using `.browser` before when we were on React 18 so this should be safe.
1 parent c2b493b commit fb490b0

File tree

4 files changed

+21
-1
lines changed

4 files changed

+21
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from 'react-dom/server.edge'
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
let ReactDOMServer
2+
3+
try {
4+
ReactDOMServer = require('react-dom/server.edge')
5+
} catch (error) {
6+
if (
7+
// TODO: copilot suggestion. Does this code actually exist?
8+
error.code !== 'MODULE_NOT_FOUND' &&
9+
// TODO: actually encountered that
10+
error.code !== 'ERR_PACKAGE_PATH_NOT_EXPORTED'
11+
) {
12+
throw error
13+
}
14+
// TOOD: Ensure App Router does not bundle this
15+
ReactDOMServer = require('react-dom/server.browser')
16+
}
17+
18+
module.exports = ReactDOMServer

packages/next/src/server/render.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import type { Revalidate, SwrDelta } from './lib/revalidate'
4040
import type { COMPILER_NAMES } from '../shared/lib/constants'
4141

4242
import React, { type JSX } from 'react'
43-
import ReactDOMServerEdge from 'react-dom/server.edge'
43+
import ReactDOMServerEdge from '../build/shims/ReactDOMServerEdgeIfAvailable'
4444
import { StyleRegistry, createStyleRegistry } from 'styled-jsx'
4545
import {
4646
GSP_NO_RETURNED_VALUE,

packages/next/webpack.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const pagesExternals = [
1313
'react-dom/package.json',
1414
'react-dom/client',
1515
'react-dom/server',
16+
'react-dom/server.browser',
1617
'react-dom/server.edge',
1718
'react-server-dom-webpack/client',
1819
'react-server-dom-webpack/client.edge',

0 commit comments

Comments
 (0)