diff --git a/packages/react-server/lib/dev/create-server.mjs b/packages/react-server/lib/dev/create-server.mjs index a89cee0d..178b82e8 100644 --- a/packages/react-server/lib/dev/create-server.mjs +++ b/packages/react-server/lib/dev/create-server.mjs @@ -45,6 +45,7 @@ import importRemote from "../plugins/import-remote.mjs"; import jsonNamedExports from "../plugins/json-named-exports.mjs"; import reactServerLive from "../plugins/live.mjs"; import optimizeDeps from "../plugins/optimize-deps.mjs"; +import fixCjsExternalFacade from "../plugins/fix-cjs-external-facade.mjs"; import reactServerEval from "../plugins/react-server-eval.mjs"; import reactServerRuntime from "../plugins/react-server-runtime.mjs"; import resolveWorkspace from "../plugins/resolve-workspace.mjs"; @@ -270,6 +271,7 @@ export default async function createServer(root, options) { ...filterOutVitePluginReact(config.plugins), asset(), optimizeDeps(), + fixCjsExternalFacade(), reactServerLive(options.httpServer, config), ...(telemetryConfig ? [telemetryHooks()] : []), ], diff --git a/packages/react-server/lib/plugins/fix-cjs-external-facade.mjs b/packages/react-server/lib/plugins/fix-cjs-external-facade.mjs new file mode 100644 index 00000000..c3ce0491 --- /dev/null +++ b/packages/react-server/lib/plugins/fix-cjs-external-facade.mjs @@ -0,0 +1,18 @@ +export default function fixCjsExternalFacade() { + return { + name: "react-server:fix-react-dom-cjs-facade", + enforce: "pre", + transform(code, id) { + try { + if (id.includes("vite_cjs-external-facade")) { + return code.replace( + "module.exports = { ...m }", + "module.exports = m.default ?? m" + ); + } + } catch { + // Ignore any errors during transformation to avoid breaking the build + } + }, + }; +}