diff --git a/.changeset/sour-roses-admire.md b/.changeset/sour-roses-admire.md new file mode 100644 index 000000000000..731e93eed429 --- /dev/null +++ b/.changeset/sour-roses-admire.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +Create fallback page when prerendering is disabled diff --git a/packages/kit/src/core/build/prerender/prerender.js b/packages/kit/src/core/build/prerender/prerender.js index 60ecddc2ceb0..b8d20d16e37a 100644 --- a/packages/kit/src/core/build/prerender/prerender.js +++ b/packages/kit/src/core/build/prerender/prerender.js @@ -55,10 +55,6 @@ export async function prerender({ config, entries, files, log }) { paths: [] }; - if (!config.kit.prerender.enabled) { - return prerendered; - } - installFetch(); const server_root = join(config.kit.outDir, 'output'); @@ -75,6 +71,23 @@ export async function prerender({ config, entries, files, log }) { const server = new Server(manifest); + const rendered = await server.respond(new Request('http://sveltekit-prerender/[fallback]'), { + getClientAddress, + prerender: { + fallback: true, + default: false, + dependencies: new Map() + } + }); + + const file = `${config.kit.outDir}/output/prerendered/fallback.html`; + mkdirp(dirname(file)); + writeFileSync(file, await rendered.text()); + + if (!config.kit.prerender.enabled) { + return prerendered; + } + const error = normalise_error_handler(log, config.kit.prerender.onError); const q = queue(config.kit.prerender.concurrency); @@ -268,19 +281,6 @@ export async function prerender({ config, entries, files, log }) { await q.done(); } - const rendered = await server.respond(new Request('http://sveltekit-prerender/[fallback]'), { - getClientAddress, - prerender: { - fallback: true, - default: false, - dependencies: new Map() - } - }); - - const file = `${config.kit.outDir}/output/prerendered/fallback.html`; - mkdirp(dirname(file)); - writeFileSync(file, await rendered.text()); - return prerendered; }