diff options
author | 2022-04-06 17:20:58 -0300 | |
---|---|---|
committer | 2022-04-06 16:20:58 -0400 | |
commit | 8bd49c95365f7bbce41e19b7e8658ad639c22f31 (patch) | |
tree | 8e148ede564ed011e42c042191214e3c1e7096c5 | |
parent | 13b782f421871af36978f29154c715c66739d475 (diff) | |
download | astro-8bd49c95365f7bbce41e19b7e8658ad639c22f31.tar.gz astro-8bd49c95365f7bbce41e19b7e8658ad639c22f31.tar.zst astro-8bd49c95365f7bbce41e19b7e8658ad639c22f31.zip |
fix(integrations): `astro:build:done` dir now matches SSR client output (#3008)
* `dir` now matches client output
* Updated integrations
* Changeset
-rw-r--r-- | .changeset/empty-pens-talk.md | 7 | ||||
-rw-r--r-- | packages/astro/src/core/build/index.ts | 1 | ||||
-rw-r--r-- | packages/astro/src/integrations/index.ts | 7 | ||||
-rw-r--r-- | packages/integrations/partytown/src/index.ts | 4 | ||||
-rw-r--r-- | packages/integrations/vercel/src/index.ts | 8 |
5 files changed, 20 insertions, 7 deletions
diff --git a/.changeset/empty-pens-talk.md b/.changeset/empty-pens-talk.md new file mode 100644 index 000000000..98133ddd1 --- /dev/null +++ b/.changeset/empty-pens-talk.md @@ -0,0 +1,7 @@ +--- +'astro': patch +'@astrojs/partytown': patch +'@astrojs/vercel': patch +--- + +Updated integrations' `astro:build:done` hook: now it matches the client dist when using SSR diff --git a/packages/astro/src/core/build/index.ts b/packages/astro/src/core/build/index.ts index ae6d9ff3e..98c8f1e8d 100644 --- a/packages/astro/src/core/build/index.ts +++ b/packages/astro/src/core/build/index.ts @@ -174,6 +174,7 @@ class AstroBuilder { await viteServer.close(); await runHookBuildDone({ config: this.config, + buildConfig, pages: pageNames, routes: Object.values(allPages).map((pd) => pd.route), }); diff --git a/packages/astro/src/integrations/index.ts b/packages/astro/src/integrations/index.ts index 9e96b1a5a..452081e48 100644 --- a/packages/astro/src/integrations/index.ts +++ b/packages/astro/src/integrations/index.ts @@ -4,6 +4,7 @@ import { AstroConfig, AstroRenderer, BuildConfig, RouteData } from '../@types/as import { mergeConfig } from '../core/config.js'; import ssgAdapter from '../adapter-ssg/index.js'; import type { ViteConfigWithSSR } from '../core/create-vite.js'; +import { isBuildingToSSR } from '../core/util.js'; export async function runHookConfigSetup({ config: _config, @@ -136,18 +137,22 @@ export async function runHookBuildSetup({ export async function runHookBuildDone({ config, + buildConfig, pages, routes, }: { config: AstroConfig; + buildConfig: BuildConfig; pages: string[]; routes: RouteData[]; }) { + const dir = isBuildingToSSR(config) ? buildConfig.client : config.outDir; + for (const integration of config.integrations) { if (integration.hooks['astro:build:done']) { await integration.hooks['astro:build:done']({ pages: pages.map((p) => ({ pathname: p })), - dir: config.outDir, + dir, routes, }); } diff --git a/packages/integrations/partytown/src/index.ts b/packages/integrations/partytown/src/index.ts index ebd133e33..7f235b776 100644 --- a/packages/integrations/partytown/src/index.ts +++ b/packages/integrations/partytown/src/index.ts @@ -32,8 +32,8 @@ export default function createPlugin(): AstroIntegration { }) ); }, - 'astro:build:done': async () => { - await copyLibFiles(fileURLToPath(new URL('~partytown', config.outDir)), { + 'astro:build:done': async ({ dir }) => { + await copyLibFiles(fileURLToPath(new URL('~partytown', dir)), { debugDir: false, }); }, diff --git a/packages/integrations/vercel/src/index.ts b/packages/integrations/vercel/src/index.ts index 59561a852..b780f6d37 100644 --- a/packages/integrations/vercel/src/index.ts +++ b/packages/integrations/vercel/src/index.ts @@ -35,7 +35,7 @@ export default function vercel(): AstroIntegration { buildConfig.client = new URL('./static/', _config.outDir); buildConfig.server = new URL('./server/tmp/', _config.outDir); }, - 'astro:build:done': async ({ dir, routes }) => { + 'astro:build:done': async ({ routes }) => { /* Why do we need two folders? Why don't we just generate all inside `server/pages/`? When the app builds, it throws some metadata inside a `chunks/` folder. @@ -50,8 +50,8 @@ export default function vercel(): AstroIntegration { need to bundle as much as possible in one file. Hence, the following code */ - const tmpDir = new URL('./server/tmp/', dir); - const bundleDir = new URL('./server/pages/', dir); + const tmpDir = new URL('./server/tmp/', _config.outDir); + const bundleDir = new URL('./server/pages/', _config.outDir); await fs.mkdir(bundleDir, { recursive: true }); @@ -69,7 +69,7 @@ export default function vercel(): AstroIntegration { // Routes Manifest // https://vercel.com/docs/file-system-api#configuration/routes - await writeJson(new URL(`./routes-manifest.json`, dir), { + await writeJson(new URL(`./routes-manifest.json`, _config.outDir), { version: 3, basePath: '/', pages404: false, |