From 5b034bcc7b1b8a80e3d18d5db728aadf473df7f1 Mon Sep 17 00:00:00 2001 From: Theo Steiner Date: Sat, 7 Aug 2021 22:25:41 +0900 Subject: [PATCH 1/5] Fix fallback not being output to build dir when prerender disabled --- packages/kit/src/core/adapt/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/core/adapt/utils.js b/packages/kit/src/core/adapt/utils.js index 2d6c7b36d871..ed6efa5dd612 100644 --- a/packages/kit/src/core/adapt/utils.js +++ b/packages/kit/src/core/adapt/utils.js @@ -31,7 +31,7 @@ export function get_utils({ cwd, config, build_data, log }) { }, async prerender({ all = false, dest, fallback }) { - if (config.kit.prerender.enabled) { + if (config.kit.prerender.enabled || fallback) { await prerender({ out: dest, all, From 0a606b2f3e4ef1c174b21bf8f73a2cac4fc5d09f Mon Sep 17 00:00:00 2001 From: Theo Steiner Date: Tue, 10 Aug 2021 18:12:13 +0900 Subject: [PATCH 2/5] Make render crawl conditional on whether fallback is set or not --- packages/kit/src/core/adapt/prerender.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/kit/src/core/adapt/prerender.js b/packages/kit/src/core/adapt/prerender.js index c721cab8fb2b..61955a7cdfa8 100644 --- a/packages/kit/src/core/adapt/prerender.js +++ b/packages/kit/src/core/adapt/prerender.js @@ -264,16 +264,6 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a } } - for (const entry of config.kit.prerender.pages) { - if (entry === '*') { - for (const entry of build_data.entries) { - await visit(entry, null); - } - } else { - await visit(entry, null); - } - } - if (fallback) { const rendered = await app.render( { @@ -295,5 +285,15 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a const file = join(out, fallback); mkdirp(dirname(file)); writeFileSync(file, rendered.body || ''); + } else { + for (const entry of config.kit.prerender.pages) { + if (entry === '*') { + for (const entry of build_data.entries) { + await visit(entry, null); + } + } else { + await visit(entry, null); + } + } } } From 0b31f691503bdcab84d5ca18d35678b3164aff6a Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Tue, 10 Aug 2021 10:20:19 -0700 Subject: [PATCH 3/5] Create grumpy-onions-applaud.md --- .changeset/grumpy-onions-applaud.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/grumpy-onions-applaud.md diff --git a/.changeset/grumpy-onions-applaud.md b/.changeset/grumpy-onions-applaud.md new file mode 100644 index 000000000000..64b37f2ec2fc --- /dev/null +++ b/.changeset/grumpy-onions-applaud.md @@ -0,0 +1,5 @@ +--- +"@sveltejs/kit": patch +--- + +[fix] fallback should still be generated when prerender is disabled From 0b5055f5ae61328925fcf2c5862cbfb233a926d0 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Tue, 10 Aug 2021 20:16:30 -0700 Subject: [PATCH 4/5] fix tests --- packages/kit/src/core/adapt/prerender.js | 34 +++++++++++++++--------- packages/kit/src/core/adapt/utils.js | 20 +++++++------- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/packages/kit/src/core/adapt/prerender.js b/packages/kit/src/core/adapt/prerender.js index 61955a7cdfa8..529bf702312e 100644 --- a/packages/kit/src/core/adapt/prerender.js +++ b/packages/kit/src/core/adapt/prerender.js @@ -81,7 +81,8 @@ function chooseErrorHandler(log, onError) { const OK = 2; const REDIRECT = 3; -/** @param {{ +/** + * @param {{ * cwd: string; * out: string; * log: Logger; @@ -89,8 +90,13 @@ const REDIRECT = 3; * build_data: import('types/internal').BuildData; * fallback?: string; * all: boolean; // disregard `export const prerender = true` - * }} opts */ + * }} opts + */ export async function prerender({ cwd, out, log, config, build_data, fallback, all }) { + if (!config.kit.prerender.enabled && !fallback) { + return; + } + __fetch_polyfill(); const dir = resolve_path(cwd, `${SVELTE_KIT}/output`); @@ -219,7 +225,7 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a }); if (is_html && config.kit.prerender.crawl) { - const cleaned = clean_html(/** @type {string} */ (rendered.body)); + const cleaned = clean_html(/** @type {string} */(rendered.body)); let match; const pattern = /<(a|img|link|source)\s+([\s\S]+?)>/gm; @@ -264,6 +270,18 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a } } + if (config.kit.prerender.enabled) { + for (const entry of config.kit.prerender.pages) { + if (entry === '*') { + for (const entry of build_data.entries) { + await visit(entry, null); + } + } else { + await visit(entry, null); + } + } + } + if (fallback) { const rendered = await app.render( { @@ -285,15 +303,5 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a const file = join(out, fallback); mkdirp(dirname(file)); writeFileSync(file, rendered.body || ''); - } else { - for (const entry of config.kit.prerender.pages) { - if (entry === '*') { - for (const entry of build_data.entries) { - await visit(entry, null); - } - } else { - await visit(entry, null); - } - } } } diff --git a/packages/kit/src/core/adapt/utils.js b/packages/kit/src/core/adapt/utils.js index ed6efa5dd612..ac20099d850d 100644 --- a/packages/kit/src/core/adapt/utils.js +++ b/packages/kit/src/core/adapt/utils.js @@ -31,17 +31,15 @@ export function get_utils({ cwd, config, build_data, log }) { }, async prerender({ all = false, dest, fallback }) { - if (config.kit.prerender.enabled || fallback) { - await prerender({ - out: dest, - all, - cwd, - config, - build_data, - fallback, - log - }); - } + await prerender({ + out: dest, + all, + cwd, + config, + build_data, + fallback, + log + }); } }; } From 598748add2b2f05d1887e8ac6fae0c6c2fc7cba4 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Tue, 10 Aug 2021 20:19:13 -0700 Subject: [PATCH 5/5] format --- packages/kit/src/core/adapt/prerender.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/core/adapt/prerender.js b/packages/kit/src/core/adapt/prerender.js index 529bf702312e..e822858299a8 100644 --- a/packages/kit/src/core/adapt/prerender.js +++ b/packages/kit/src/core/adapt/prerender.js @@ -225,7 +225,7 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a }); if (is_html && config.kit.prerender.crawl) { - const cleaned = clean_html(/** @type {string} */(rendered.body)); + const cleaned = clean_html(/** @type {string} */ (rendered.body)); let match; const pattern = /<(a|img|link|source)\s+([\s\S]+?)>/gm;