From 657530be17f4884d8b43c6911e23065de6fcd30b Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Thu, 23 Jan 2025 09:47:24 +0000 Subject: [PATCH 1/3] fix: arrange assets for server output too --- packages/vercel/src/index.ts | 14 ++++++-------- .../vercel/test/integration-assets.test.js | 18 +++++++++++++----- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/packages/vercel/src/index.ts b/packages/vercel/src/index.ts index af2ede2f..6b46512e 100644 --- a/packages/vercel/src/index.ts +++ b/packages/vercel/src/index.ts @@ -220,11 +220,12 @@ export default function vercelAdapter({ name: 'astro:copy-vercel-output', hooks: { 'astro:build:done': async () => { - if (_buildOutput === 'static') { - cpSync(_config.outDir, new URL('./.vercel/output/static/', _config.root), { - recursive: true, - }); - } + logger.info('Copying static files to .vercel/output/static'); + const staticDir = + _buildOutput === 'static' ? _config.outDir : _config.build.client; + cpSync(staticDir, new URL('./.vercel/output/static/', _config.root), { + recursive: true, + }); }, }, }, @@ -329,9 +330,6 @@ export default function vercelAdapter({ mkdirSync(new URL('./.vercel/output/server/', _config.root)); if (_buildOutput !== 'static') { - cpSync(_config.build.client, new URL('./.vercel/output/static/', _config.root), { - recursive: true, - }); cpSync(_config.build.server, new URL('./.vercel/output/_functions/', _config.root), { recursive: true, }); diff --git a/packages/vercel/test/integration-assets.test.js b/packages/vercel/test/integration-assets.test.js index 76489974..f299f3ef 100644 --- a/packages/vercel/test/integration-assets.test.js +++ b/packages/vercel/test/integration-assets.test.js @@ -3,18 +3,26 @@ import { before, describe, it } from 'node:test'; import { loadFixture } from './test-utils.js'; describe('Assets generated by integrations', () => { - /** @type {import('./test-utils.js').Fixture} */ - let fixture; - before(async () => { - fixture = await loadFixture({ + + it('moves static assets generated by integrations to the correct location: static output', async () => { + const fixture = await loadFixture({ root: './fixtures/integration-assets/', }); await fixture.build(); + const sitemap = await fixture.readFile('../.vercel/output/static/sitemap-index.xml'); + assert(sitemap.includes('')); }); - it('moves static assets generated by integrations to the correct location', async () => { + it('moves static assets generated by integrations to the correct location: server output', async () => { + const fixture = await loadFixture({ + root: './fixtures/integration-assets/', + output: 'server', + }); + await fixture.build(); const sitemap = await fixture.readFile('../.vercel/output/static/sitemap-index.xml'); assert(sitemap.includes('')); }); + + }); From 6243fbaf2a6bb43c1a7c19f40bb140602ea22a82 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Thu, 23 Jan 2025 11:00:28 +0000 Subject: [PATCH 2/3] Changeset --- .changeset/loud-snails-float.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/loud-snails-float.md diff --git a/.changeset/loud-snails-float.md b/.changeset/loud-snails-float.md new file mode 100644 index 00000000..0234de26 --- /dev/null +++ b/.changeset/loud-snails-float.md @@ -0,0 +1,5 @@ +--- +'@astrojs/vercel': patch +--- + +Fixes a bug that prevented integration-generated static assets from being deployed with non-static sites From ccb30cd85bf05ccec5f642a6d1f3e057e9e4eaf5 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Thu, 23 Jan 2025 11:05:31 +0000 Subject: [PATCH 3/3] Format --- packages/vercel/test/integration-assets.test.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/vercel/test/integration-assets.test.js b/packages/vercel/test/integration-assets.test.js index f299f3ef..6bf8edc4 100644 --- a/packages/vercel/test/integration-assets.test.js +++ b/packages/vercel/test/integration-assets.test.js @@ -3,8 +3,6 @@ import { before, describe, it } from 'node:test'; import { loadFixture } from './test-utils.js'; describe('Assets generated by integrations', () => { - - it('moves static assets generated by integrations to the correct location: static output', async () => { const fixture = await loadFixture({ root: './fixtures/integration-assets/', @@ -23,6 +21,4 @@ describe('Assets generated by integrations', () => { const sitemap = await fixture.readFile('../.vercel/output/static/sitemap-index.xml'); assert(sitemap.includes('')); }); - - });