Skip to content

Commit a2ed86a

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

File tree

4 files changed

+42
-7
lines changed

4 files changed

+42
-7
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+
// We're setting Rollup to assume that imports are ES modules unless otherwise specified.
178+
// However, we also compile ES import syntax to `require()` using Babel.
179+
// This causes Rollup to turn uses of `import SomeDefaultImport from 'some-module' into
180+
// references to `SomeDefaultImport.default` due to CJS/ESM interop.
181+
// Some CJS modules don't have a `.default` export, and the rewritten import is incorrect.
182+
// Specifying `interop: 'default'` instead will have Rollup use the imported variable as-is,
183+
// without adding a `.default` to the reference.
184+
const modulesWithCommonJsExports = [
185+
'JSResourceReferenceImpl',
186+
'error-stack-parser',
187+
'art/core/transform',
188+
'art/modes/current',
189+
'art/modes/fast-noSideEffects',
190+
'art/modes/svg',
191+
];
192+
193+
if (modulesWithCommonJsExports.includes(id)) {
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,

scripts/rollup/wrappers.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,10 @@ if (process.env.NODE_ENV !== "production") {
354354
${source}
355355
return exports;
356356
};
357-
}`;
357+
module.exports.default = module.exports;
358+
Object.defineProperty(module.exports, "__esModule", { value: true });
359+
}
360+
`;
358361
},
359362

360363
/***************** NODE_PROD (reconciler only) *****************/
@@ -366,10 +369,14 @@ ${source}
366369
${license}
367370
*/
368371
module.exports = function $$$reconciler($$$hostConfig) {
372+
369373
var exports = {};
370374
${source}
371375
return exports;
372-
};`;
376+
};
377+
module.exports.default = module.exports;
378+
Object.defineProperty(module.exports, "__esModule", { value: true });
379+
`;
373380
},
374381

375382
/***************** NODE_PROFILING (reconciler only) *****************/
@@ -384,7 +391,10 @@ module.exports = function $$$reconciler($$$hostConfig) {
384391
var exports = {};
385392
${source}
386393
return exports;
387-
};`;
394+
};
395+
module.exports.default = module.exports;
396+
Object.defineProperty(module.exports, "__esModule", { value: true });
397+
`;
388398
},
389399
};
390400

0 commit comments

Comments
 (0)