From 54d461845571d778fc72231e20b3dc68fecd229d Mon Sep 17 00:00:00 2001 From: Theodor Steiner <40017636+Theo-Steiner@users.noreply.github.com> Date: Sat, 12 Mar 2022 12:59:13 +0900 Subject: [PATCH 1/8] [docs] document new prerender.default setting --- packages/adapter-static/README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/adapter-static/README.md b/packages/adapter-static/README.md index ff76cc83d5ad..6dc38d0f66ef 100644 --- a/packages/adapter-static/README.md +++ b/packages/adapter-static/README.md @@ -12,19 +12,19 @@ import adapter from '@sveltejs/adapter-static'; export default { kit: { + // Enable prerendering by default unless when in SPA mode + prerender.default: true, adapter: adapter({ // default options are shown pages: 'build', assets: 'build', fallback: null, precompress: false - }) + }), } }; ``` -Unless you're in [SPA mode](#spa-mode), the adapter will attempt to prerender every page of your app, regardless of whether the [`prerender`](https://kit.svelte.dev/docs/page-options#prerender) option is set. - > ⚠️ You must ensure SvelteKit's [`trailingSlash`](https://kit.svelte.dev/docs/configuration#trailingslash) option is set appropriately for your environment. If your host does not render `/a.html` upon receiving a request for `/a` then you will need to set `trailingSlash: 'always'` to create `/a/index.html` instead. ## Options @@ -47,7 +47,7 @@ If `true`, precompresses files with brotli and gzip. This will generate `.br` an ## SPA mode -You can use `adapter-static` to create a single-page app or SPA by specifying a **fallback page**. +You can use `adapter-static` to create a single-page app or SPA by specifying a **fallback page** and leaving the default of ``false`` for ``config.kitprerender.default``. > In most situations this is not recommended: it harms SEO, tends to slow down perceived performance, and makes your app inaccessible to users if JavaScript fails or is disabled (which happens [more often than you probably think](https://kryogenix.org/code/browser/everyonehasjs.html)). @@ -65,8 +65,7 @@ export default { } }; ``` - -When operating in SPA mode, only pages that have the [`prerender`](https://kit.svelte.dev/docs/page-options#prerender) option set will be prerendered. +When operating in SPA mode, only pages that have the [`prerender`](https://kit.svelte.dev/docs/page-options#prerender) option set will be prerendered at build time. ## GitHub Pages From b07f9fb7d2ed58c1cbfaba65c439ed546bf5f34c Mon Sep 17 00:00:00 2001 From: Theodor Steiner <40017636+Theo-Steiner@users.noreply.github.com> Date: Sat, 12 Mar 2022 13:00:36 +0900 Subject: [PATCH 2/8] [docs] add explanation about dev / production discrepancy --- packages/adapter-static/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/adapter-static/README.md b/packages/adapter-static/README.md index 6dc38d0f66ef..deff17453099 100644 --- a/packages/adapter-static/README.md +++ b/packages/adapter-static/README.md @@ -66,6 +66,7 @@ export default { }; ``` When operating in SPA mode, only pages that have the [`prerender`](https://kit.svelte.dev/docs/page-options#prerender) option set will be prerendered at build time. +> ⚠️ During development, SvelteKit will still attempt to server-side render your routes. This means accessing things that are only available in the browser (such as the ``window`` object) will result in errors, even though this would be valid in the output app. To align the behavior of SvelteKit's dev mode with your SPA, you can [call ``resolve()`` with a parameter of ``ssr`` set to ``false`` inside the ``handle()`` hook](https://kit.svelte.dev/docs/hooks#handle). ## GitHub Pages From 25da58b7a8143553cde510898fffaf5e32967abd Mon Sep 17 00:00:00 2001 From: Theodor Steiner <40017636+Theo-Steiner@users.noreply.github.com> Date: Sat, 12 Mar 2022 13:11:30 +0900 Subject: [PATCH 3/8] Remove trailing comma --- packages/adapter-static/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/adapter-static/README.md b/packages/adapter-static/README.md index deff17453099..cc682db21266 100644 --- a/packages/adapter-static/README.md +++ b/packages/adapter-static/README.md @@ -20,7 +20,7 @@ export default { assets: 'build', fallback: null, precompress: false - }), + }) } }; ``` From ad0fb4444b0265a3d6e0e51cbe4157bb1bf798fa Mon Sep 17 00:00:00 2001 From: Theodor Steiner <40017636+Theo-Steiner@users.noreply.github.com> Date: Sat, 12 Mar 2022 13:17:25 +0900 Subject: [PATCH 4/8] Fix weird code description --- packages/adapter-static/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/adapter-static/README.md b/packages/adapter-static/README.md index cc682db21266..64383d1f2017 100644 --- a/packages/adapter-static/README.md +++ b/packages/adapter-static/README.md @@ -66,7 +66,7 @@ export default { }; ``` When operating in SPA mode, only pages that have the [`prerender`](https://kit.svelte.dev/docs/page-options#prerender) option set will be prerendered at build time. -> ⚠️ During development, SvelteKit will still attempt to server-side render your routes. This means accessing things that are only available in the browser (such as the ``window`` object) will result in errors, even though this would be valid in the output app. To align the behavior of SvelteKit's dev mode with your SPA, you can [call ``resolve()`` with a parameter of ``ssr`` set to ``false`` inside the ``handle()`` hook](https://kit.svelte.dev/docs/hooks#handle). +> ⚠️ During development, SvelteKit will still attempt to server-side render your routes. This means accessing things that are only available in the browser (such as the ``window`` object) will result in errors, even though this would be valid in the output app. To align the behavior of SvelteKit's dev mode with your SPA, you can [call ``resolve()`` with a parameter of ``{ssr: false}`` inside the ``handle()`` hook](https://kit.svelte.dev/docs/hooks#handle). ## GitHub Pages From 0b946c9227149c624586460fbf5400bf15ea0100 Mon Sep 17 00:00:00 2001 From: Theo Steiner Date: Sat, 12 Mar 2022 21:03:10 +0900 Subject: [PATCH 5/8] Run prettier --- packages/adapter-static/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/adapter-static/README.md b/packages/adapter-static/README.md index 64383d1f2017..10a6f8238545 100644 --- a/packages/adapter-static/README.md +++ b/packages/adapter-static/README.md @@ -47,7 +47,7 @@ If `true`, precompresses files with brotli and gzip. This will generate `.br` an ## SPA mode -You can use `adapter-static` to create a single-page app or SPA by specifying a **fallback page** and leaving the default of ``false`` for ``config.kitprerender.default``. +You can use `adapter-static` to create a single-page app or SPA by specifying a **fallback page** and leaving the default of `false` for `config.kitprerender.default`. > In most situations this is not recommended: it harms SEO, tends to slow down perceived performance, and makes your app inaccessible to users if JavaScript fails or is disabled (which happens [more often than you probably think](https://kryogenix.org/code/browser/everyonehasjs.html)). @@ -65,8 +65,10 @@ export default { } }; ``` + When operating in SPA mode, only pages that have the [`prerender`](https://kit.svelte.dev/docs/page-options#prerender) option set will be prerendered at build time. -> ⚠️ During development, SvelteKit will still attempt to server-side render your routes. This means accessing things that are only available in the browser (such as the ``window`` object) will result in errors, even though this would be valid in the output app. To align the behavior of SvelteKit's dev mode with your SPA, you can [call ``resolve()`` with a parameter of ``{ssr: false}`` inside the ``handle()`` hook](https://kit.svelte.dev/docs/hooks#handle). + +> ⚠️ During development, SvelteKit will still attempt to server-side render your routes. This means accessing things that are only available in the browser (such as the `window` object) will result in errors, even though this would be valid in the output app. To align the behavior of SvelteKit's dev mode with your SPA, you can [call `resolve()` with a parameter of `{ssr: false}` inside the `handle()` hook](https://kit.svelte.dev/docs/hooks#handle). ## GitHub Pages From d7ffa266da89ff140a90ef0b5ede88d8f42cff94 Mon Sep 17 00:00:00 2001 From: Theodor Steiner <40017636+Theo-Steiner@users.noreply.github.com> Date: Sun, 13 Mar 2022 09:45:04 +0900 Subject: [PATCH 6/8] Wording Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> --- packages/adapter-static/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/adapter-static/README.md b/packages/adapter-static/README.md index 10a6f8238545..93548a5158a9 100644 --- a/packages/adapter-static/README.md +++ b/packages/adapter-static/README.md @@ -12,7 +12,7 @@ import adapter from '@sveltejs/adapter-static'; export default { kit: { - // Enable prerendering by default unless when in SPA mode + // Enable prerendering by default. Remove if using SPA mode prerender.default: true, adapter: adapter({ // default options are shown From 3f59cc0d3c3d00e3cbb182ec4df11aced7e9b446 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 14 Mar 2022 18:44:54 -0400 Subject: [PATCH 7/8] make the example config syntactically valid --- packages/adapter-static/README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/adapter-static/README.md b/packages/adapter-static/README.md index 93548a5158a9..02d75ab953d7 100644 --- a/packages/adapter-static/README.md +++ b/packages/adapter-static/README.md @@ -12,15 +12,18 @@ import adapter from '@sveltejs/adapter-static'; export default { kit: { - // Enable prerendering by default. Remove if using SPA mode - prerender.default: true, adapter: adapter({ // default options are shown pages: 'build', assets: 'build', fallback: null, precompress: false - }) + }), + + prerender: { + // This can be false if you're using a fallback (i.e. SPA mode) + default: true + } } }; ``` From 6533100ff98248d58ab6b36e02ca73c611ca0f32 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 14 Mar 2022 18:51:06 -0400 Subject: [PATCH 8/8] shuffle things around --- packages/adapter-static/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/adapter-static/README.md b/packages/adapter-static/README.md index 02d75ab953d7..9c363858f0c4 100644 --- a/packages/adapter-static/README.md +++ b/packages/adapter-static/README.md @@ -50,7 +50,7 @@ If `true`, precompresses files with brotli and gzip. This will generate `.br` an ## SPA mode -You can use `adapter-static` to create a single-page app or SPA by specifying a **fallback page** and leaving the default of `false` for `config.kitprerender.default`. +You can use `adapter-static` to create a single-page app or SPA by specifying a **fallback page**. > In most situations this is not recommended: it harms SEO, tends to slow down perceived performance, and makes your app inaccessible to users if JavaScript fails or is disabled (which happens [more often than you probably think](https://kryogenix.org/code/browser/everyonehasjs.html)). @@ -69,7 +69,7 @@ export default { }; ``` -When operating in SPA mode, only pages that have the [`prerender`](https://kit.svelte.dev/docs/page-options#prerender) option set will be prerendered at build time. +When operating in SPA mode, you can omit `config.kit.prerender.default` (or set it to `false`, its default value), and only pages that have the [`prerender`](https://kit.svelte.dev/docs/page-options#prerender) option set will be prerendered at build time. > ⚠️ During development, SvelteKit will still attempt to server-side render your routes. This means accessing things that are only available in the browser (such as the `window` object) will result in errors, even though this would be valid in the output app. To align the behavior of SvelteKit's dev mode with your SPA, you can [call `resolve()` with a parameter of `{ssr: false}` inside the `handle()` hook](https://kit.svelte.dev/docs/hooks#handle).