summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Bjorn Lu <bjornlu.dev@gmail.com> 2022-10-12 20:25:54 +0800
committerGravatar GitHub <noreply@github.com> 2022-10-12 08:25:54 -0400
commitbaf88ee9e5e692a94981d7a696fbdcb4cd8ab2a6 (patch)
treea52374f9771cb4be3e1bf4a1284d900ebac2000e
parent8d2d0c3c03d3192973c24dc57a88b03e2ad98fd8 (diff)
downloadastro-baf88ee9e5e692a94981d7a696fbdcb4cd8ab2a6.tar.gz
astro-baf88ee9e5e692a94981d7a696fbdcb4cd8ab2a6.tar.zst
astro-baf88ee9e5e692a94981d7a696fbdcb4cd8ab2a6.zip
Skip JSX tagging for export statements with source (#5057)
Diffstat (limited to '')
-rw-r--r--.changeset/serious-icons-dream.md5
-rw-r--r--packages/astro/src/vite-plugin-jsx/tag.ts2
-rw-r--r--packages/astro/test/fixtures/react-jsx-export/src/components/ListExportTest.jsx2
-rw-r--r--packages/astro/test/fixtures/react-jsx-export/src/components/ListExportTestComponent.jsx6
-rw-r--r--packages/astro/test/fixtures/react-jsx-export/src/pages/index.astro3
-rw-r--r--packages/astro/test/react-jsx-export.test.js1
6 files changed, 17 insertions, 2 deletions
diff --git a/.changeset/serious-icons-dream.md b/.changeset/serious-icons-dream.md
new file mode 100644
index 000000000..968f8a4b4
--- /dev/null
+++ b/.changeset/serious-icons-dream.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Skip JSX tagging for export statements with source
diff --git a/packages/astro/src/vite-plugin-jsx/tag.ts b/packages/astro/src/vite-plugin-jsx/tag.ts
index 23e9e41a5..b6ba7c302 100644
--- a/packages/astro/src/vite-plugin-jsx/tag.ts
+++ b/packages/astro/src/vite-plugin-jsx/tag.ts
@@ -104,7 +104,7 @@ export default function tagExportsWithRenderer({
addTag(property.key.name);
}
});
- } else if (t.isExportNamedDeclaration(node)) {
+ } else if (t.isExportNamedDeclaration(node) && !node.source) {
node.specifiers.forEach((specifier) => {
if (t.isExportSpecifier(specifier) && t.isIdentifier(specifier.exported)) {
addTag(specifier.local.name);
diff --git a/packages/astro/test/fixtures/react-jsx-export/src/components/ListExportTest.jsx b/packages/astro/test/fixtures/react-jsx-export/src/components/ListExportTest.jsx
index e695821d1..812e2648e 100644
--- a/packages/astro/test/fixtures/react-jsx-export/src/components/ListExportTest.jsx
+++ b/packages/astro/test/fixtures/react-jsx-export/src/components/ListExportTest.jsx
@@ -1,5 +1,7 @@
import { useState } from "react"
+export { ListExportTestComponent } from './ListExportTestComponent'
+
const ListExport = () => {
const [example] = useState('Example')
return <h2 id="default_list_export">{example}</h2>
diff --git a/packages/astro/test/fixtures/react-jsx-export/src/components/ListExportTestComponent.jsx b/packages/astro/test/fixtures/react-jsx-export/src/components/ListExportTestComponent.jsx
new file mode 100644
index 000000000..c2b32eb20
--- /dev/null
+++ b/packages/astro/test/fixtures/react-jsx-export/src/components/ListExportTestComponent.jsx
@@ -0,0 +1,6 @@
+import { useState } from "react"
+
+export const ListExportTestComponent = () => {
+ const [example] = useState('Example')
+ return <h2 id="list_export_test_component">{example}</h2>
+}
diff --git a/packages/astro/test/fixtures/react-jsx-export/src/pages/index.astro b/packages/astro/test/fixtures/react-jsx-export/src/pages/index.astro
index 92a3833a4..8414987e3 100644
--- a/packages/astro/test/fixtures/react-jsx-export/src/pages/index.astro
+++ b/packages/astro/test/fixtures/react-jsx-export/src/pages/index.astro
@@ -1,5 +1,5 @@
---
-import ListAsDefaultExport, {ListExport, RenamedListExport} from '../components/ListExportTest'
+import ListAsDefaultExport, {ListExport, RenamedListExport, ListExportTestComponent} from '../components/ListExportTest'
import {ConstDeclarationExport, LetDeclarationExport, FunctionDeclarationExport} from '../components/DeclarationExportTest'
import AnonymousArrowDefaultExport from '../components/defaultExport/AnonymousArrowDefaultExport'
import AnonymousFunctionDefaultExport from '../components/defaultExport/AnonymousFunctionDefaultExport'
@@ -12,6 +12,7 @@ import NamedFunctionDefaultExport from '../components/defaultExport/NamedFunctio
<ListAsDefaultExport />
<ListExport />
<RenamedListExport />
+<ListExportTestComponent />
<ConstDeclarationExport />
<LetDeclarationExport />
diff --git a/packages/astro/test/react-jsx-export.test.js b/packages/astro/test/react-jsx-export.test.js
index 4a5b951b2..b43f53c5f 100644
--- a/packages/astro/test/react-jsx-export.test.js
+++ b/packages/astro/test/react-jsx-export.test.js
@@ -17,6 +17,7 @@ describe('react-jsx-export', () => {
'default_list_export',
'renamed_list_export',
'list_as_default_export',
+ 'list_export_test_component',
];
const reactInvalidHookWarning =