diff --git a/.changeset/olive-ears-suffer.md b/.changeset/olive-ears-suffer.md new file mode 100644 index 000000000000..7eb5f80a808e --- /dev/null +++ b/.changeset/olive-ears-suffer.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +[fix] reestablish prerender.enabled option diff --git a/packages/kit/src/core/config/index.spec.js b/packages/kit/src/core/config/index.spec.js index f6da4aec9f32..90866aeec8d7 100644 --- a/packages/kit/src/core/config/index.spec.js +++ b/packages/kit/src/core/config/index.spec.js @@ -113,7 +113,7 @@ const get_defaults = (prefix = '') => ({ crawl: true, createIndexFiles: undefined, default: undefined, - enabled: undefined, + enabled: true, entries: ['*'], force: undefined, handleHttpError: 'fail', diff --git a/packages/kit/src/core/config/options.js b/packages/kit/src/core/config/options.js index 29ec6d3d7b50..ab6fae2d50c7 100644 --- a/packages/kit/src/core/config/options.js +++ b/packages/kit/src/core/config/options.js @@ -238,10 +238,7 @@ const options = object( (keypath) => `${keypath} has been removed. You can set it inside the top level +layout.js instead. See the PR for more information: https://github.com/sveltejs/kit/pull/6197` ), - enabled: error( - (keypath) => - `${keypath} has been removed. You can wrap any code that should not be executed during build in a \`if (!building) {...}\` block. See the discussion for more information: https://github.com/sveltejs/kit/discussions/7716` - ), + enabled: boolean(true), entries: validate(['*'], (input, keypath) => { if (!Array.isArray(input) || !input.every((page) => typeof page === 'string')) { throw new Error(`${keypath} must be an array of strings`); diff --git a/packages/kit/src/core/prerender/prerender.js b/packages/kit/src/core/prerender/prerender.js index 0f4957a806bc..3cc11f5211e9 100644 --- a/packages/kit/src/core/prerender/prerender.js +++ b/packages/kit/src/core/prerender/prerender.js @@ -77,6 +77,11 @@ export async function prerender() { /** @type {import('types').ValidatedKitConfig} */ const config = (await load_config()).kit; + if (!config.prerender.enabled) { + output_and_exit({ prerendered, prerender_map }); + return; + } + /** @type {import('types').Logger} */ const log = logger({ verbose: verbose === 'true' diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index daf9de3795bc..aa4678797336 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -435,6 +435,11 @@ export interface KitConfig { * @default true */ crawl?: boolean; + /** + * Set this to `false` to disable prerendering altogether + * @default true + */ + enabled?: boolean; /** * An array of pages to prerender, or start crawling from (if `crawl: true`). The `*` string includes all non-dynamic routes (i.e. pages with no `[parameters]`, because SvelteKit doesn't know what value the parameters should have). * @default ["*"]