From 2c1feef0359b8305328989d27c803bd9001f02ae Mon Sep 17 00:00:00 2001 From: Florian Lefebvre Date: Mon, 17 Nov 2025 11:28:50 +0100 Subject: [PATCH 1/4] fix: sync override settings --- .../src/assets/fonts/vite-plugin-fonts.ts | 4 ++-- packages/astro/src/core/sync/index.ts | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/astro/src/assets/fonts/vite-plugin-fonts.ts b/packages/astro/src/assets/fonts/vite-plugin-fonts.ts index f3852d64627e..da7c1aaaf140 100644 --- a/packages/astro/src/assets/fonts/vite-plugin-fonts.ts +++ b/packages/astro/src/assets/fonts/vite-plugin-fonts.ts @@ -67,7 +67,7 @@ interface Options { } export function fontsPlugin({ settings, sync, logger }: Options): Plugin { - if (sync || !settings.config.experimental.fonts) { + if (!settings.config.experimental.fonts) { // This is required because the virtual module may be imported as // a side effect // TODO: remove once fonts are stabilized @@ -319,7 +319,7 @@ export function fontsPlugin({ settings, sync, logger }: Options): Plugin { } }, async buildEnd() { - if (settings.config.experimental.fonts!.length === 0) { + if (sync || settings.config.experimental.fonts!.length === 0) { cleanup(); return; } diff --git a/packages/astro/src/core/sync/index.ts b/packages/astro/src/core/sync/index.ts index 2bac3623c1c5..e30f2980abeb 100644 --- a/packages/astro/src/core/sync/index.ts +++ b/packages/astro/src/core/sync/index.ts @@ -251,7 +251,23 @@ async function syncContentCollections( ssr: { external: [] }, logLevel: 'silent', }, - { settings, logger, mode, command: 'build', fs, sync: true, routesList, manifest }, + { + settings: { + ...settings, + buildOutput: undefined, + injectedCsp: { + fontResources: new Set(), + styleHashes: [], + }, + }, + logger, + mode, + command: 'build', + fs, + sync: true, + routesList, + manifest, + }, ), ); From bd1b986257d9a555c942ca6ba212fafeba460d00 Mon Sep 17 00:00:00 2001 From: Florian Lefebvre Date: Mon, 17 Nov 2025 11:30:27 +0100 Subject: [PATCH 2/4] chore: changeset --- .changeset/tender-wasps-shop.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tender-wasps-shop.md diff --git a/.changeset/tender-wasps-shop.md b/.changeset/tender-wasps-shop.md new file mode 100644 index 000000000000..a254912cb900 --- /dev/null +++ b/.changeset/tender-wasps-shop.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Improves syncing From b71fd3ee1e886dc34c4b0175081c6e329ab4b974 Mon Sep 17 00:00:00 2001 From: Florian Lefebvre Date: Mon, 17 Nov 2025 12:02:57 +0100 Subject: [PATCH 3/4] Apply suggestions from code review --- packages/astro/src/core/sync/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/astro/src/core/sync/index.ts b/packages/astro/src/core/sync/index.ts index e30f2980abeb..68301374f7b9 100644 --- a/packages/astro/src/core/sync/index.ts +++ b/packages/astro/src/core/sync/index.ts @@ -254,6 +254,7 @@ async function syncContentCollections( { settings: { ...settings, + // Prevent mutation by vite plugins during sync buildOutput: undefined, injectedCsp: { fontResources: new Set(), From 1ba4867c2a9d1ab29f383cb968d32cb3b3a69d2c Mon Sep 17 00:00:00 2001 From: Florian Lefebvre Date: Tue, 18 Nov 2025 10:48:24 +0100 Subject: [PATCH 4/4] Apply suggestions from code review --- packages/astro/src/core/sync/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/astro/src/core/sync/index.ts b/packages/astro/src/core/sync/index.ts index 68301374f7b9..c00326baf3e5 100644 --- a/packages/astro/src/core/sync/index.ts +++ b/packages/astro/src/core/sync/index.ts @@ -252,10 +252,12 @@ async function syncContentCollections( logLevel: 'silent', }, { + // Prevent mutation of specific properties by vite plugins during sync settings: { ...settings, // Prevent mutation by vite plugins during sync buildOutput: undefined, + // Sync causes font resources and style hashes to be duplicated injectedCsp: { fontResources: new Set(), styleHashes: [],