Skip to content

Commit f2aba7a

Browse files
committed
Fix Rollup v3 build issues
1 parent e66332a commit f2aba7a

File tree

3 files changed

+29
-4
lines changed

3 files changed

+29
-4
lines changed

packages/react-server-dom-webpack/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
"./server.node.unbundled": "./server.node.unbundled.js",
6767
"./node-loader": "./esm/react-server-dom-webpack-node-loader.production.min.js",
6868
"./node-register": "./node-register.js",
69-
"./src/*": "./src/*",
69+
"./src/*": "./src/*.js",
7070
"./package.json": "./package.json"
7171
},
7272
"main": "index.js",

scripts/rollup/build.js

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,31 @@ function getBabelConfig(
173173
return options;
174174
}
175175

176+
let getRollupInteropValue = id => {
177+
// ReactNoop.js and ReactNoopPersistent.js use several default imports from other internal packages.
178+
// That gets turned into a `require()`, but the `module.exports = function reconciler()` wrapper
179+
// gets added later, so Rollup isn't fully aware of it, and tries to use `RFR.default` instead.
180+
// Force Rollup to use the `require()`'d value directly, without adding a `.default`.
181+
// Other cases:
182+
// - `react-art` needs to deal with imports from the `art` package
183+
// -`error-stack-parser`
184+
const exactModuleNames = [
185+
'react-reconciler',
186+
'react-server/flight',
187+
'react-client/flight',
188+
'react-server',
189+
'JSResourceReferenceImpl',
190+
'error-stack-parser',
191+
];
192+
193+
if (exactModuleNames.includes(id) || id.startsWith('art/')) {
194+
return 'default';
195+
}
196+
197+
// For all other modules, handle imports without any import helper utils
198+
return 'esModule';
199+
};
200+
176201
function getRollupOutputOptions(
177202
outputPath,
178203
format,
@@ -187,7 +212,7 @@ function getRollupOutputOptions(
187212
format,
188213
globals,
189214
freeze: !isProduction,
190-
interop: false,
215+
interop: getRollupInteropValue,
191216
name: globalName,
192217
sourcemap: false,
193218
esModule: false,
@@ -612,7 +637,7 @@ async function createBundle(bundle, bundleType) {
612637
output: {
613638
externalLiveBindings: false,
614639
freeze: false,
615-
interop: false,
640+
interop: getRollupInteropValue,
616641
esModule: false,
617642
},
618643
};

scripts/rollup/bundles.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ const bundles = [
442442
{
443443
bundleTypes: [NODE_ES2015],
444444
moduleType: RENDERER_UTILS,
445-
entry: 'react-server-dom-webpack/src/ReactFlightWebpackNodeRegister.js',
445+
entry: 'react-server-dom-webpack/src/ReactFlightWebpackNodeRegister',
446446
name: 'react-server-dom-webpack-node-register',
447447
global: 'ReactFlightWebpackNodeRegister',
448448
minifyWithProdErrorCodes: false,

0 commit comments

Comments
 (0)