summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Ben Holmes <hey@bholmes.dev> 2022-08-22 11:46:02 -0400
committerGravatar GitHub <noreply@github.com> 2022-08-22 11:46:02 -0400
commit7820096e1ba29ecc58aa7e13311a255acd2fe977 (patch)
treee5d1e4e64dbc2d68869c8d90fcf3d6ad342894a6
parent39088e11db2ab69b370616d7cb369952cd9fd266 (diff)
downloadastro-7820096e1ba29ecc58aa7e13311a255acd2fe977.tar.gz
astro-7820096e1ba29ecc58aa7e13311a255acd2fe977.tar.zst
astro-7820096e1ba29ecc58aa7e13311a255acd2fe977.zip
fix: correctly add `react-dom` alias to Vercel edge (#4421)
* fix: correctly add react-dom alias to vercel edge * chore: changeset
-rw-r--r--.changeset/heavy-pants-change.md5
-rw-r--r--packages/integrations/vercel/src/edge/adapter.ts13
2 files changed, 16 insertions, 2 deletions
diff --git a/.changeset/heavy-pants-change.md b/.changeset/heavy-pants-change.md
new file mode 100644
index 000000000..32c7b30ef
--- /dev/null
+++ b/.changeset/heavy-pants-change.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/vercel': patch
+---
+
+Fix react-dom on Vercel edge
diff --git a/packages/integrations/vercel/src/edge/adapter.ts b/packages/integrations/vercel/src/edge/adapter.ts
index 84ecd7395..14dac655d 100644
--- a/packages/integrations/vercel/src/edge/adapter.ts
+++ b/packages/integrations/vercel/src/edge/adapter.ts
@@ -32,8 +32,17 @@ export default function vercelEdge(): AstroIntegration {
if (target === 'server') {
vite.resolve ||= {};
vite.resolve.alias ||= {};
- const alias = vite.resolve.alias as Record<string, string>;
- alias['react-dom/server'] = 'react-dom/server.browser';
+
+ const aliases = [{ find: 'react-dom/server', replacement: 'react-dom/server.browser' }];
+
+ if (Array.isArray(vite.resolve.alias)) {
+ vite.resolve.alias = [...vite.resolve.alias, ...aliases];
+ } else {
+ for (const alias of aliases) {
+ (vite.resolve.alias as Record<string, string>)[alias.find] = alias.replacement;
+ }
+ }
+
vite.ssr = {
noExternal: true,
};