feat: static adapter errors during development#16506
Conversation
|
Install the latest version of pnpm add https://pkg.svelte.dev/@sveltejs/kit/c/f0d04add53cfdcd79482940f2d0c0469a4fc9f2dOpen in |
|
| // simulate prerendering during development to surface errors earlier | ||
| prerendering: { | ||
| dependencies: new Map(), | ||
| remote_responses: new Map(), | ||
| fallback: __SVELTEKIT_ADAPTER_STATIC_FALLBACK__ | ||
| }, |
There was a problem hiding this comment.
There should be a public and easier way to do this
| before_handle: async (event, _config, prerender, handle) => { | ||
| if (!event.isSubRequest && !event.isDataRequest && !event.isRemoteRequest && !prerender) { | ||
| const error = new Error('Encountered dynamic routes'); | ||
| error.stack = ''; | ||
|
|
||
| console.error( | ||
| styleText( | ||
| ['bold', 'red'], | ||
| `@sveltejs/adapter-static: all routes must be fully prerenderable, but the ${event.url.pathname} route is dynamic\n` | ||
| ) | ||
| ); | ||
|
|
||
| console.log(get_options_message(!!Object.keys(event.params).length, false)); | ||
|
|
||
| throw error; | ||
| } | ||
| return await handle(); | ||
| } | ||
| }); |
There was a problem hiding this comment.
Need something public that lets us log errors when a page option isn't set
poc for throwing prerendering errors during development to help surfaces issues earlier using the custom server entrypoint API. You can go to the static adapter prerender test app, run
pnpm devand try disabling prerendering on any page to see the error surface.While trying to get this to work, it made me think we need a public API to declare that all pages need to have the prerender option set, etc..
Also, we should consolidate our prerendering checks better. We currently have:
prerenderingin$app/env/internalset manually during the forked prerender processstate.prerenderingpassed in when callingserver.respondstate.prerender_defaultequal to the current page's prerender page option value (we should consolidate to this)todo: split out some dev prerender error changes not dependent on custom dev server entrypoints
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
Tests
pnpm testand lint the project withpnpm lintandpnpm checkChangesets
pnpm changesetand following the prompts. Changesets that add features should beminorand those that fix bugs should bepatch. Please prefix changeset messages withfeat:,fix:, orchore:.Edits