From 9821312d0b8683d6dbac14405957bc1daa946d1e Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 21 Feb 2023 22:14:47 +0800 Subject: [PATCH] Use .mjs extension when building for netlify edge and vercel serverless (#6317) --- .../vercel/src/serverless/adapter.ts | 2 +- .../serverless-prerender/astro.config.mjs | 7 +++++++ .../fixtures/serverless-prerender/package.json | 9 +++++++++ .../serverless-prerender/src/pages/index.astro | 12 ++++++++++++ .../vercel/test/serverless-prerender.test.js | 18 ++++++++++++++++++ 5 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 packages/integrations/vercel/test/fixtures/serverless-prerender/astro.config.mjs create mode 100644 packages/integrations/vercel/test/fixtures/serverless-prerender/package.json create mode 100644 packages/integrations/vercel/test/fixtures/serverless-prerender/src/pages/index.astro create mode 100644 packages/integrations/vercel/test/serverless-prerender.test.js diff --git a/packages/integrations/vercel/src/serverless/adapter.ts b/packages/integrations/vercel/src/serverless/adapter.ts index 8a9553eca6..24b9c735b4 100644 --- a/packages/integrations/vercel/src/serverless/adapter.ts +++ b/packages/integrations/vercel/src/serverless/adapter.ts @@ -43,7 +43,7 @@ export default function vercelServerless({ updateConfig({ outDir, build: { - serverEntry: 'entry.js', + serverEntry: 'entry.mjs', client: new URL('./static/', outDir), server: new URL('./dist/', config.root), }, diff --git a/packages/integrations/vercel/test/fixtures/serverless-prerender/astro.config.mjs b/packages/integrations/vercel/test/fixtures/serverless-prerender/astro.config.mjs new file mode 100644 index 0000000000..03228c5df5 --- /dev/null +++ b/packages/integrations/vercel/test/fixtures/serverless-prerender/astro.config.mjs @@ -0,0 +1,7 @@ +import { defineConfig } from 'astro/config'; +import vercel from '@astrojs/vercel/serverless'; + +export default defineConfig({ + adapter: vercel(), + output: 'server' +}); diff --git a/packages/integrations/vercel/test/fixtures/serverless-prerender/package.json b/packages/integrations/vercel/test/fixtures/serverless-prerender/package.json new file mode 100644 index 0000000000..c51362516a --- /dev/null +++ b/packages/integrations/vercel/test/fixtures/serverless-prerender/package.json @@ -0,0 +1,9 @@ +{ + "name": "@test/astro-vercel-serverless-prerender", + "version": "0.0.0", + "private": true, + "dependencies": { + "@astrojs/vercel": "workspace:*", + "astro": "workspace:*" + } +} diff --git a/packages/integrations/vercel/test/fixtures/serverless-prerender/src/pages/index.astro b/packages/integrations/vercel/test/fixtures/serverless-prerender/src/pages/index.astro new file mode 100644 index 0000000000..0752535505 --- /dev/null +++ b/packages/integrations/vercel/test/fixtures/serverless-prerender/src/pages/index.astro @@ -0,0 +1,12 @@ +--- +export const prerender = true +--- + + + + testing + + +

testing

+ + diff --git a/packages/integrations/vercel/test/serverless-prerender.test.js b/packages/integrations/vercel/test/serverless-prerender.test.js new file mode 100644 index 0000000000..4cada43a7b --- /dev/null +++ b/packages/integrations/vercel/test/serverless-prerender.test.js @@ -0,0 +1,18 @@ +import { loadFixture } from './test-utils.js'; +import { expect } from 'chai'; + +describe('Serverless prerender', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/serverless-prerender/', + }); + }); + + it('build successful', async () => { + await fixture.build(); + expect(fixture.readFile('/static/index.html')).to.be.ok; + }); +});