Skip to content

Commit

Permalink
Fix module resolution
Browse files Browse the repository at this point in the history
  • Loading branch information
devknoll committed Feb 4, 2022
1 parent 9835b58 commit b45c6a5
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 12 deletions.
8 changes: 0 additions & 8 deletions packages/next/build/webpack-config.ts
Expand Up @@ -610,14 +610,6 @@ export default async function getBaseWebpackConfig(
}
: {}),

...(webServerRuntime
? {
'react-dom/server': dev
? 'react-dom/cjs/react-dom-server.browser.development'
: 'react-dom/cjs/react-dom-server.browser.production.min',
}
: {}),

setimmediate: 'next/dist/compiled/setimmediate',
},
...(targetWeb
Expand Down
10 changes: 8 additions & 2 deletions packages/next/server/render.tsx
@@ -1,7 +1,6 @@
import { IncomingMessage, ServerResponse } from 'http'
import { ParsedUrlQuery, stringify as stringifyQuery } from 'querystring'
import React from 'react'
import ReactDOMServer from 'react-dom/server'
import { createFromReadableStream } from 'next/dist/compiled/react-server-dom-webpack'
import { renderToReadableStream } from 'next/dist/compiled/react-server-dom-webpack/writer.browser.server'
import { StyleRegistry, createStyleRegistry } from 'styled-jsx'
Expand Down Expand Up @@ -1148,6 +1147,10 @@ export async function renderToHTML(
return inAmpMode ? children : <div id="__next">{children}</div>
}

const ReactDOMServer = concurrentFeatures
? require('react-dom/server')
: require('react-dom/server.browser')

/**
* Rules of Static & Dynamic HTML:
*
Expand Down Expand Up @@ -1250,6 +1253,7 @@ export async function renderToHTML(

const content = renderContent()
return await renderToWebStream(
ReactDOMServer,
content,
suffix,
serverComponentsInlinedTransformStream,
Expand Down Expand Up @@ -1379,7 +1383,7 @@ export async function renderToHTML(
)

let documentHTML: string
if (process.browser) {
if (concurrentFeatures) {
// There is no `renderToStaticMarkup` exposed in the web environment, use
// blocking `renderToReadableStream` to get the similar result.
let result = ''
Expand Down Expand Up @@ -1551,6 +1555,7 @@ async function bufferedReadFromReadableStream(
}
}

const encoder = new TextEncoder()
while (true) {
const { done, value } = await reader.read()
if (done) {
Expand All @@ -1566,6 +1571,7 @@ async function bufferedReadFromReadableStream(
}

function renderToWebStream(
ReactDOMServer: typeof import('react-dom/server'),
element: React.ReactElement,
suffix: string,
serverComponentsInlinedTransformStream: TransformStream | null,
Expand Down
3 changes: 1 addition & 2 deletions packages/next/server/web-server.ts
Expand Up @@ -146,9 +146,8 @@ export default class NextWebServer extends BaseServer {
): Promise<void> {
// @TODO
const writer = res.transformStream.writable.getWriter()
const encoder = new TextEncoder()
options.result.pipe({
write: (str: string) => writer.write(encoder.encode(str)),
write: (chunk: Uint8Array) => writer.write(chunk),
end: () => writer.close(),
destroy: (err: Error) => writer.abort(err),
cork: () => {},
Expand Down
1 change: 1 addition & 0 deletions test/integration/react-18/test/require-hook.js
Expand Up @@ -4,6 +4,7 @@ const hookPropertyMap = new Map([
['react', 'react-18'],
['react-dom', 'react-dom-18'],
['react-dom/server', 'react-dom-18/server'],
['react-dom/server.browser', 'react-dom-18/server.browser'],
])

const resolveFilename = mod._resolveFilename
Expand Down
1 change: 1 addition & 0 deletions test/integration/react-18/test/with-react-18.js
Expand Up @@ -13,6 +13,7 @@ module.exports = function withReact18(config) {
alias['react'] = 'react-18'
alias['react-dom'] = 'react-dom-18'
alias['react-dom/server'] = 'react-dom-18/server'
alias['react-dom/server.browser'] = 'react-dom-18/server.browser'

return webpackConfig
}
Expand Down

0 comments on commit b45c6a5

Please sign in to comment.