diff --git a/.changeset/shy-colts-sniff.md b/.changeset/shy-colts-sniff.md new file mode 100644 index 000000000000..2a9dcdf60567 --- /dev/null +++ b/.changeset/shy-colts-sniff.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +feat: more helpful error for preview if build output doesn't exist diff --git a/packages/kit/src/exports/vite/preview/index.js b/packages/kit/src/exports/vite/preview/index.js index 326818c3b181..1e5045dd3bda 100644 --- a/packages/kit/src/exports/vite/preview/index.js +++ b/packages/kit/src/exports/vite/preview/index.js @@ -36,6 +36,10 @@ export async function preview(vite, vite_config, svelte_config) { const dir = join(svelte_config.kit.outDir, 'output/server'); + if (!fs.existsSync(dir)) { + throw new Error(`Server files not found at ${dir}, did you run \`build\` first?`); + } + /** @type {import('types').ServerInternalModule} */ const { set_assets } = await import(pathToFileURL(join(dir, 'internal.js')).href);