summaryrefslogtreecommitdiff
path: root/packages/renderers/renderer-react
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@matthewphillips.info> 2022-01-13 13:28:29 -0500
committerGravatar GitHub <noreply@github.com> 2022-01-13 13:28:29 -0500
commit20eaddb2a723253c7fbde3e56955a549bdf3f342 (patch)
treee3b61872034fb55a2531e50b7bf72b23c2eb699d /packages/renderers/renderer-react
parent500295395caade20e024bda9234a3f5b9e9a2126 (diff)
downloadastro-20eaddb2a723253c7fbde3e56955a549bdf3f342.tar.gz
astro-20eaddb2a723253c7fbde3e56955a549bdf3f342.tar.zst
astro-20eaddb2a723253c7fbde3e56955a549bdf3f342.zip
Fix for using React in the static build (#2369)
* Fix react in the static build * Adds a changeset
Diffstat (limited to 'packages/renderers/renderer-react')
-rw-r--r--packages/renderers/renderer-react/index.js5
-rw-r--r--packages/renderers/renderer-react/jsx-runtime.js12
-rw-r--r--packages/renderers/renderer-react/package.json3
3 files changed, 18 insertions, 2 deletions
diff --git a/packages/renderers/renderer-react/index.js b/packages/renderers/renderer-react/index.js
index e73dd622a..a3cedcf07 100644
--- a/packages/renderers/renderer-react/index.js
+++ b/packages/renderers/renderer-react/index.js
@@ -8,7 +8,10 @@ export default {
default: { default: jsx },
} = await import('@babel/plugin-transform-react-jsx');
return {
- plugins: [jsx({}, { runtime: 'automatic', importSource: 'react' })],
+ plugins: [jsx({}, {
+ runtime: 'automatic',
+ importSource: '@astrojs/renderer-react'
+ })],
};
},
viteConfig() {
diff --git a/packages/renderers/renderer-react/jsx-runtime.js b/packages/renderers/renderer-react/jsx-runtime.js
new file mode 100644
index 000000000..1df555fc0
--- /dev/null
+++ b/packages/renderers/renderer-react/jsx-runtime.js
@@ -0,0 +1,12 @@
+// This module is a simple wrapper around react/jsx-runtime so that
+// it can run in Node ESM. 'react' doesn't declare this module as an export map
+// So we have to use the .js. The .js is not added via the babel automatic JSX transform
+// hence this module as a workaround.
+import jsxr from 'react/jsx-runtime.js';
+const { jsx, jsxs, Fragment } = jsxr;
+
+export {
+ jsx,
+ jsxs,
+ Fragment
+};
diff --git a/packages/renderers/renderer-react/package.json b/packages/renderers/renderer-react/package.json
index c8e02ad2f..b462a120e 100644
--- a/packages/renderers/renderer-react/package.json
+++ b/packages/renderers/renderer-react/package.json
@@ -17,7 +17,8 @@
"./*": "./*",
"./client.js": "./client.js",
"./server.js": "./server.js",
- "./package.json": "./package.json"
+ "./package.json": "./package.json",
+ "./jsx-runtime": "./jsx-runtime.js"
},
"dependencies": {
"@babel/plugin-transform-react-jsx": "^7.16.0",