From 125b5bec0ef26fb66cba44393ac7131ae8b29933 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Tue, 26 May 2026 14:22:31 -0400 Subject: [PATCH] Document preserveBuildServerDir adapter feature --- .../docs/en/reference/adapter-reference.mdx | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/content/docs/en/reference/adapter-reference.mdx b/src/content/docs/en/reference/adapter-reference.mdx index 359fb442dc595..629e34251bd5f 100644 --- a/src/content/docs/en/reference/adapter-reference.mdx +++ b/src/content/docs/en/reference/adapter-reference.mdx @@ -854,6 +854,39 @@ export default function createIntegration() { } ``` +### `preserveBuildServerDir` + +

+ +**Type:** `boolean`
+**Default:** `false`
+ +

+ +When `true`, static builds will preserve the `client/server` directory structure for server output instead of outputting directly to `outDir`. This ensures static builds use `build.server` for server files, maintaining consistency with server builds. + +This is useful for adapters that require a consistent `dist/client/` and `dist/server/` layout regardless of the build output type, such as when a static site may still contain server islands or image endpoints that need a server entry. + +```js title="my-adapter.mjs" ins={10-12} +export default function createIntegration() { + return { + name: '@example/my-adapter', + hooks: { + 'astro:config:done': ({ setAdapter }) => { + setAdapter({ + name: '@example/my-adapter', + entrypointResolution: 'auto', + serverEntrypoint: '@example/my-adapter/server.js', + adapterFeatures: { + preserveBuildServerDir: true, + }, + }); + }, + }, + }; +} +``` + ## Adapter types reference The following types can be imported from the `astro` module: