From b236b5cc8eb9e078758d9c6cb77d88c39bb1fc3d Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 1 Feb 2023 23:16:18 +0100 Subject: [PATCH] fix: solidjs integration for vercel edge build (adopting same mechanics as cloudflare) (#6085) * fix solidjs integration for vercel deployment * downgrade change to patch --------- Co-authored-by: AirBorne04 <> --- .changeset/wild-seas-happen.md | 5 ++++ .../integrations/vercel/src/edge/adapter.ts | 24 ++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 .changeset/wild-seas-happen.md diff --git a/.changeset/wild-seas-happen.md b/.changeset/wild-seas-happen.md new file mode 100644 index 0000000000..8db21e433a --- /dev/null +++ b/.changeset/wild-seas-happen.md @@ -0,0 +1,5 @@ +--- +'@astrojs/vercel': patch +--- + +Added second build step through esbuild, to allow framework defined build (vite build) and target defined bundling (esbuilt step) diff --git a/packages/integrations/vercel/src/edge/adapter.ts b/packages/integrations/vercel/src/edge/adapter.ts index c4457ffdd1..4193681d2a 100644 --- a/packages/integrations/vercel/src/edge/adapter.ts +++ b/packages/integrations/vercel/src/edge/adapter.ts @@ -1,4 +1,5 @@ import type { AstroAdapter, AstroConfig, AstroIntegration } from 'astro'; +import esbuild from 'esbuild'; import { relative as relativePath } from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -74,18 +75,25 @@ export default function vercelEdge({ includeFiles = [] }: VercelEdgeConfig = {}) } } - vite.ssr = { - target: 'webworker', - noExternal: true, - }; - - vite.build ||= {}; - vite.build.minify = true; + vite.ssr ||= {}; + vite.ssr.target ||= 'webworker'; } }, 'astro:build:done': async ({ routes }) => { const entry = new URL(serverEntry, buildTempFolder); const generatedFiles = await getFilesFromFolder(buildTempFolder); + const entryPath = fileURLToPath(entry); + + await esbuild.build({ + target: 'es2020', + platform: 'browser', + entryPoints: [entryPath], + outfile: entryPath, + allowOverwrite: true, + format: 'esm', + bundle: true, + minify: true, + }); // Copy entry and other server files const commonAncestor = await copyFilesToFunction( @@ -100,7 +108,7 @@ export default function vercelEdge({ includeFiles = [] }: VercelEdgeConfig = {}) // https://vercel.com/docs/build-output-api/v3#vercel-primitives/edge-functions/configuration await writeJson(new URL(`./.vc-config.json`, functionFolder), { runtime: 'edge', - entrypoint: relativePath(commonAncestor, fileURLToPath(entry)), + entrypoint: relativePath(commonAncestor, entryPath), }); // Output configuration