From 039d022b1bbaacf9ea83071d27affc5318e0e515 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Mon, 16 Dec 2024 14:19:11 -0500 Subject: [PATCH] Clean sourcemaps from static output (#12749) * Clean sourcemaps from static output * Add changeset * Update test to look at frontend sourcemaps --- .changeset/tame-spoons-shop.md | 5 +++++ packages/astro/src/core/build/index.ts | 5 +++-- packages/astro/src/core/build/static-build.ts | 18 ++++++++++-------- packages/astro/test/astro-basic.test.js | 8 ++++++++ .../test/fixtures/astro-basic/astro.config.mjs | 7 ++++++- packages/astro/test/sourcemap.test.js | 10 ++++++++-- 6 files changed, 40 insertions(+), 13 deletions(-) create mode 100644 .changeset/tame-spoons-shop.md diff --git a/.changeset/tame-spoons-shop.md b/.changeset/tame-spoons-shop.md new file mode 100644 index 000000000000..e0d80ecdb92c --- /dev/null +++ b/.changeset/tame-spoons-shop.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Clean server sourcemaps from static output diff --git a/packages/astro/src/core/build/index.ts b/packages/astro/src/core/build/index.ts index 7a10d90debf5..14bc534ddca2 100644 --- a/packages/astro/src/core/build/index.ts +++ b/packages/astro/src/core/build/index.ts @@ -205,7 +205,8 @@ class AstroBuilder { key: keyPromise, }; - const { internals, ssrOutputChunkNames, contentFileNames } = await viteBuild(opts); + const { internals, ssrOutputChunkNames } = + await viteBuild(opts); const hasServerIslands = this.settings.serverIslandNameMap.size > 0; // Error if there are server islands but no adapter provided. @@ -213,7 +214,7 @@ class AstroBuilder { throw new AstroError(AstroErrorData.NoAdapterInstalledServerIslands); } - await staticBuild(opts, internals, ssrOutputChunkNames, contentFileNames); + await staticBuild(opts, internals, ssrOutputChunkNames); // Write any additionally generated assets to disk. this.timer.assetsStart = performance.now(); diff --git a/packages/astro/src/core/build/static-build.ts b/packages/astro/src/core/build/static-build.ts index 5a86992b2b34..8023d9e3b012 100644 --- a/packages/astro/src/core/build/static-build.ts +++ b/packages/astro/src/core/build/static-build.ts @@ -92,7 +92,6 @@ export async function viteBuild(opts: StaticBuildOptions) { const ssrOutputs = viteBuildReturnToRollupOutputs(ssrOutput); const clientOutputs = viteBuildReturnToRollupOutputs(clientOutput ?? []); await runPostBuildHooks(container, ssrOutputs, clientOutputs); - let contentFileNames: string[] | undefined = undefined; settings.timer.end('Client build'); // Free up memory @@ -112,20 +111,19 @@ export async function viteBuild(opts: StaticBuildOptions) { } } - return { internals, ssrOutputChunkNames, contentFileNames }; + return { internals, ssrOutputChunkNames }; } export async function staticBuild( opts: StaticBuildOptions, internals: BuildInternals, ssrOutputChunkNames: string[], - contentFileNames?: string[], ) { const { settings } = opts; if (settings.buildOutput === 'static') { settings.timer.start('Static generate'); await generatePages(opts, internals); - await cleanServerOutput(opts, ssrOutputChunkNames, contentFileNames, internals); + await cleanServerOutput(opts, ssrOutputChunkNames, internals); settings.timer.end('Static generate'); } else if (settings.buildOutput === 'server') { settings.timer.start('Server generate'); @@ -354,14 +352,12 @@ async function cleanStaticOutput(opts: StaticBuildOptions, internals: BuildInter async function cleanServerOutput( opts: StaticBuildOptions, ssrOutputChunkNames: string[], - contentFileNames: string[] | undefined, internals: BuildInternals, ) { const out = getOutDirWithinCwd(opts.settings.config.outDir); // The SSR output chunks for Astro are all .mjs files const files = ssrOutputChunkNames - .filter((f) => f.endsWith('.mjs')) - .concat(contentFileNames ?? []); + .filter((f) => f.endsWith('.mjs')); if (internals.manifestFileName) { files.push(internals.manifestFileName); } @@ -370,7 +366,11 @@ async function cleanServerOutput( await Promise.all( files.map(async (filename) => { const url = new URL(filename, out); - await fs.promises.rm(url); + const map = new URL(url + '.map'); + await Promise.all([ + fs.promises.rm(url), + fs.promises.rm(new URL(map)).catch((e) => {}) + ]); }), ); @@ -426,6 +426,8 @@ async function ssrMoveAssets(opts: StaticBuildOptions) { cwd: fileURLToPath(serverAssets), }); + console.log("FILES2", files); + if (files.length > 0) { await Promise.all( files.map(async function moveAsset(filename) { diff --git a/packages/astro/test/astro-basic.test.js b/packages/astro/test/astro-basic.test.js index 144eec810125..a780a6cb47ca 100644 --- a/packages/astro/test/astro-basic.test.js +++ b/packages/astro/test/astro-basic.test.js @@ -167,6 +167,14 @@ describe('Astro basic build', () => { assert.doesNotMatch(otherHtml, /