From 9208a53b31f618489f1dfd94edf639c0ffabb3f1 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Thu, 26 Mar 2026 15:53:48 -0400 Subject: [PATCH] fix(cloudflare): suppress esbuild banner to prevent SSR import.meta collision with zod v4 --- .changeset/fix-ssr-import-meta-collision.md | 5 +++++ packages/integrations/cloudflare/src/index.ts | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .changeset/fix-ssr-import-meta-collision.md diff --git a/.changeset/fix-ssr-import-meta-collision.md b/.changeset/fix-ssr-import-meta-collision.md new file mode 100644 index 000000000000..59c57ddc6d0b --- /dev/null +++ b/.changeset/fix-ssr-import-meta-collision.md @@ -0,0 +1,5 @@ +--- +'@astrojs/cloudflare': patch +--- + +Fix HMR crash when editing content collection files caused by Vite's SSR transform colliding with zod v4's `meta` export diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts index c94f71bacb9e..efb3619e59cc 100644 --- a/packages/integrations/cloudflare/src/index.ts +++ b/packages/integrations/cloudflare/src/index.ts @@ -273,6 +273,11 @@ export default function createIntegration({ 'virtual:@astrojs/*', ], esbuildOptions: { + // Suppress Vite's `createRequire(import.meta.url)` banner to work around + // https://github.com/vitejs/vite/issues/22004 — Vite's SSR transform + // incorrectly rewrites identifiers inside `import.meta` when an imported + // binding shares the same name (e.g. zod v4 exports `meta`). + banner: { js: '' }, plugins: [astroFrontmatterScanPlugin()], }, },