Skip to content

Commit ccd51b5

Browse files
authored
fix: cjs external facade (#359)
Fixes Vite CJS external facade plugin transformation of require to import.
1 parent 60f8b9c commit ccd51b5

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

packages/react-server/lib/dev/create-server.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import importRemote from "../plugins/import-remote.mjs";
4545
import jsonNamedExports from "../plugins/json-named-exports.mjs";
4646
import reactServerLive from "../plugins/live.mjs";
4747
import optimizeDeps from "../plugins/optimize-deps.mjs";
48+
import fixCjsExternalFacade from "../plugins/fix-cjs-external-facade.mjs";
4849
import reactServerEval from "../plugins/react-server-eval.mjs";
4950
import reactServerRuntime from "../plugins/react-server-runtime.mjs";
5051
import resolveWorkspace from "../plugins/resolve-workspace.mjs";
@@ -270,6 +271,7 @@ export default async function createServer(root, options) {
270271
...filterOutVitePluginReact(config.plugins),
271272
asset(),
272273
optimizeDeps(),
274+
fixCjsExternalFacade(),
273275
reactServerLive(options.httpServer, config),
274276
...(telemetryConfig ? [telemetryHooks()] : []),
275277
],
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
export default function fixCjsExternalFacade() {
2+
return {
3+
name: "react-server:fix-react-dom-cjs-facade",
4+
enforce: "pre",
5+
transform(code, id) {
6+
try {
7+
if (id.includes("vite_cjs-external-facade")) {
8+
return code.replace(
9+
"module.exports = { ...m }",
10+
"module.exports = m.default ?? m"
11+
);
12+
}
13+
} catch {
14+
// Ignore any errors during transformation to avoid breaking the build
15+
}
16+
},
17+
};
18+
}

0 commit comments

Comments
 (0)