最初に結論を書いておく。
svelte.config.jsの指定はこう。
// ...
kit: {
adapter: adapter({ fallback: "index.html" }),
prerender: { entries: [] },
},
そして、根本の+layout.jsはこう。
export const ssr = false;
ルートでprerender = trueしない
当初は、adapter-staticのドキュメントを先に見てて、書いてあるとおりにルートの+layout.jsでこう指定してた。
Static site generation • Docs • SvelteKit https://kit.svelte.dev/docs/adapter-static
export const ssr = false;
// コレ
export const prerender = true;
しかし、こうしてしまうと、routes/[itemId]/viewみたいに動的なルートを作ってた場合に、ビルド時エラーになる。
Error: The following routes were marked as prerenderable, but were not prerendered because they were not found while crawling your app
いわく、
prerender = trueに従い事前レンダリングしようとしたが- (動的なルートを)クローラーが見つけられなかった
- だからエラーにするぜ!
って。
svelte.config.jsのほうで、prerender: { entries: [] }の指定をしてるなら、このルートでの指定は要らない。
あわせて指定してしまうと、動的なルートではなく静的なルートでさえも見つからないって言われちゃう。