問題発生
sveltekitでWebサービスを作っている中、node_modulesで取り込んでいるsvelteコンポーネントが単独でルーティングとして呼び出される事情が発生しました。(server側のevent.url.pathname
で取得できる)
そしてサーバーサイドのログにはError: Not found: /TideImageBox.svelte
のエラーが……
このSvelteToast.svelte
は有志が作成してくれているOSSです。 >svelte-toast
で、TideImageBox.svelte
は自分が作ったLightbox風なコンポーネントです。 >svelte-tide-image-box
いずれもsveltekitのpackage機能を作成してビルドされています。
package側の問題なのか、取り込み側の問題なのか、@sveltekit/package側なのか……原因はわかりませんがひとまずこれを解決します。
暫定対処
取り込み側のvite.config.ts
にoptimizeDeps
を設定すれば消えました
// vite.config.ts
const config: UserConfig = {
// ...中略
optimizeDeps: {
exclude: ['{パッケージネーム}'],
}
}
正直原因がわからないのでこの対応でいいのかがわかりませんが、機能としては問題なさそうではありました。 ちなみにこれはviteの依存関係の最適化を行うオプションで、事前バンドルから今回のパッケージを外すようにしています。
これで謎にアクセスしてたのはなくなりました。