summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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,
};