SvelteKit の Routing の仕様が破壊的に変わっていた
久しぶりに SvelteKit 触ったら
ブレイキングなチェンジがあったっぽく、
src/routes/
├ about.svelte
├ hello.svelte
└ index.svelte
でよかったのが
src/routes/
├ about/
│ └ +page.svelte
├ hello/
│ └ +page.svelte
└ +page.svelte
て書かないといけなくなってた。「え」と思って調べたら「そりゃないぜリチャード!」て言ってる人がやっぱいっぱいいた。
https://github.com/sveltejs/kit/discussions/5748 (変更の理由などを説明している Discussion)
https://github.com/sveltejs/kit/discussions/5037 (↑の元になったと思われる Discussion)
2022年9月にこの変更が適用された様子。関連するコンポーネント、テストやらを about/
とかに一緒に入れれてええやろ?その他メリット多数。てことらしい。「お前ら、シンプル
と 慣れたもの
を一緒にすなよ?」「俺を信じろ、グレートな未来見せてやるぜ。」てリチャードは言ってる。
app/
ディレクトリも、
Next.js 13 の about/
とかの中に page.js
を入れてルーティングできるようにするよってことらしく、どーやら世の中そーゆー流れらしい。(リチャードは「あいつら恥も知らず俺のグレートなアイデアパクりやがった」って言ってる)
now that the Next.js routing RFC is public, I can acknowledge that this is shamelessly stolen from there
(https://github.com/sveltejs/kit/discussions/5037)
とはいえ
俺のちっぽけな開発でもファイルベースじゃなくディレクトリベースのルーティングが必須になるのはフォルダがモジャモジャして嫌ではある。あと Discussion でいろんな人も言ってるけど +page.svelte
ってファイルがエディタにいっぱい開かれてタブが見にくくなるのもイヤ。開くのが1ファイルだけだとしてもタブを見て何のページを編集してるかパッと分からないのもイヤ。
気づいた流れ、参考
久しぶりに SvelteKit のドキュメントを見る
→ Routing のとこで +page.svelte
とか言ってる、about.svelte
とかについての言及がない
→ Zenn で検索してみる
→ 以下の記事で事態を把握
しかし上記ルーティングは廃止され、今はディレクトリベース のみ になりました。
直後は反対意見もそれなりに出てましたね…笑
→ 直後の反対意見
が気になって探す
→ 該当の Discussion を見つけたので上のZenn記事のコメントにリンクを貼ろうかと思ったけど、独立した記事にした方がみんな事態に気付きやすいかも、と思ってそうした。
以上。
Discussion