sveltkit を使うときはサーバー用の共通ライブラリは $lib/server/ におく

sveltekit では、サーバーサイドとクライアントサイドでコードを共通化できるのが便利。

なんだけど、実際にはサーバー側でしか動作しないようなコードももちろんあるわけで。 それだけならいいんだけど、クライアントサイドで動くと意味不明なエラーを出して来るやつもいるので、間違えてインポートしないように分けておいた方が良い。

通常、共通コードは src/lib/ 以下に置けばよいのだが、サーバー側でしか動かないコードは src/lib/server/ 以下に置くようにする。こうしておくとクライアントサイドのコードからは import できなくなって良い。

詳しくはこのへん参照のこと。

https://kit.svelte.jp/docs/server-only-modules

実際に Blog3 での実装は以下のようにしたのだった。

https://github.com/tokuhirom/blog3/pull/837