Skip to content

Commit ad789be

Browse files
committed
Externalize all React entrypoints
Fixes React 19 compat issues due to bundling JSX dev runtime. Also enables future applications of React Compiler to bundled MDX.
1 parent 073d910 commit ad789be

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/client.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as React from 'react'
22
import * as _jsx_runtime from 'react/jsx-runtime'
3+
import * as _jsx_dev_runtime from 'react/jsx-dev-runtime'
34
import * as ReactDOM from 'react-dom'
45

56
/**
@@ -26,7 +27,13 @@ function getMDXComponent(code, globals) {
2627
*
2728
*/
2829
function getMDXExport(code, globals) {
29-
const scope = {React, ReactDOM, _jsx_runtime, ...globals}
30+
const scope = {
31+
React,
32+
ReactDOM,
33+
_jsx_runtime:
34+
process.env.NODE_ENV === 'production' ? _jsx_runtime : _jsx_dev_runtime,
35+
...globals,
36+
}
3037
// eslint-disable-next-line
3138
const fn = new Function(...Object.keys(scope), code)
3239
return fn(...Object.values(scope))

src/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,14 @@ async function bundleMDX({
199199
varName: '_jsx_runtime',
200200
type: 'cjs',
201201
},
202+
'react/jsx-dev-runtime': {
203+
varName: '_jsx_runtime',
204+
type: 'cjs'
205+
},
206+
'react/compiler-runtime': {
207+
varName: '_react_compiler_runtime',
208+
type: 'cjs'
209+
}
202210
}),
203211
// eslint-disable-next-line new-cap
204212
NodeResolvePlugin({

0 commit comments

Comments
 (0)