diff --git a/.changeset/rotten-flowers-know.md b/.changeset/rotten-flowers-know.md new file mode 100644 index 0000000000..03ab03feb9 --- /dev/null +++ b/.changeset/rotten-flowers-know.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fix a bug where the middleware entry point was passed to integrations even though the configuration `build.excludeMiddleware` was set to `false`. diff --git a/packages/astro/src/core/build/plugins/plugin-middleware.ts b/packages/astro/src/core/build/plugins/plugin-middleware.ts index 8afca2fbc2..5ed532d5e8 100644 --- a/packages/astro/src/core/build/plugins/plugin-middleware.ts +++ b/packages/astro/src/core/build/plugins/plugin-middleware.ts @@ -56,7 +56,7 @@ export function vitePluginMiddleware( if (chunk.type === 'asset') { continue; } - if (chunk.fileName === 'middleware.mjs') { + if (chunk.fileName === 'middleware.mjs' && opts.settings.config.build.excludeMiddleware) { internals.middlewareEntryPoint = new URL(chunkName, opts.settings.config.build.server); } } diff --git a/packages/astro/test/middleware.test.js b/packages/astro/test/middleware.test.js index 1ed857d5b0..3796a341fc 100644 --- a/packages/astro/test/middleware.test.js +++ b/packages/astro/test/middleware.test.js @@ -118,13 +118,7 @@ describe('Middleware API in PROD mode, SSR', () => { fixture = await loadFixture({ root: './fixtures/middleware-dev/', output: 'server', - adapter: testAdapter({ - setEntryPoints(entryPointsOrMiddleware) { - if (entryPointsOrMiddleware instanceof URL) { - middlewarePath = entryPointsOrMiddleware; - } - }, - }), + adapter: testAdapter({}), }); await fixture.build(); }); @@ -218,6 +212,21 @@ describe('Middleware API in PROD mode, SSR', () => { }); it('the integration should receive the path to the middleware', async () => { + fixture = await loadFixture({ + root: './fixtures/middleware-dev/', + output: 'server', + build: { + excludeMiddleware: true, + }, + adapter: testAdapter({ + setEntryPoints(entryPointsOrMiddleware) { + if (entryPointsOrMiddleware instanceof URL) { + middlewarePath = entryPointsOrMiddleware; + } + }, + }), + }); + await fixture.build(); expect(middlewarePath).to.not.be.undefined; try { const path = fileURLToPath(middlewarePath);