From 14f1d49a10541fecc4c10def8a094322442ccf23 Mon Sep 17 00:00:00 2001 From: fightingcat Date: Fri, 5 Apr 2024 01:57:20 +0800 Subject: [PATCH] Expose Babel config for @astro/react. (#10675) --- .changeset/tall-wombats-clap.md | 5 +++++ packages/integrations/react/src/index.ts | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 .changeset/tall-wombats-clap.md diff --git a/.changeset/tall-wombats-clap.md b/.changeset/tall-wombats-clap.md new file mode 100644 index 0000000000..4553ba846e --- /dev/null +++ b/.changeset/tall-wombats-clap.md @@ -0,0 +1,5 @@ +--- +"@astrojs/react": minor +--- + +Expose Babel config for @astro/react. diff --git a/packages/integrations/react/src/index.ts b/packages/integrations/react/src/index.ts index 30781396f9..b4cfcc0398 100644 --- a/packages/integrations/react/src/index.ts +++ b/packages/integrations/react/src/index.ts @@ -3,7 +3,7 @@ import type { AstroIntegration } from 'astro'; import { version as ReactVersion } from 'react-dom'; import type * as vite from 'vite'; -export type ReactIntegrationOptions = Pick & { +export type ReactIntegrationOptions = Pick & { experimentalReactChildren?: boolean; }; @@ -46,6 +46,7 @@ function optionsPlugin(experimentalReactChildren: boolean): vite.Plugin { function getViteConfiguration({ include, exclude, + babel, experimentalReactChildren, }: ReactIntegrationOptions = {}) { return { @@ -65,7 +66,7 @@ function getViteConfiguration({ : '@astrojs/react/server-v17.js', ], }, - plugins: [react({ include, exclude }), optionsPlugin(!!experimentalReactChildren)], + plugins: [react({ include, exclude, babel }), optionsPlugin(!!experimentalReactChildren)], resolve: { dedupe: ['react', 'react-dom', 'react-dom/server'], }, @@ -89,6 +90,7 @@ function getViteConfiguration({ export default function ({ include, exclude, + babel, experimentalReactChildren, }: ReactIntegrationOptions = {}): AstroIntegration { return { @@ -97,7 +99,7 @@ export default function ({ 'astro:config:setup': ({ command, addRenderer, updateConfig, injectScript }) => { addRenderer(getRenderer()); updateConfig({ - vite: getViteConfiguration({ include, exclude, experimentalReactChildren }), + vite: getViteConfiguration({ include, exclude, babel, experimentalReactChildren }), }); if (command === 'dev') { const preamble = FAST_REFRESH_PREAMBLE.replace(`__BASE__`, '/');