本文へスキップ
MameTechNews
フロントエンド

SvelteKit 3公開、設定はViteへ集約し$libは#libへ

## POINTS

  • 設定はViteのsveltekitプラグインへ移し、$libはpackage.jsonのimportsで宣言する#libへ置き換える。
  • `sv migrate sveltekit-3` は安全に識別できる箇所だけを直し、拡張子追加などは手作業のTODOが残る。
  • remote functionsは未提供で、Async Svelteのexperimentalが必要。メジャー更新の完了条件には含めない。

SvelteKit 3.0は10月1日に公開された。既存アプリの骨格は維持しつつ、設定の置き場所とインポートの規約が変わるメジャー更新だ。新規プロジェクトは npx sv create、既存プロジェクトは npx sv migrate sveltekit-3 --tasks all --confirm で、自動で移せる箇所を直し、残りをTODOとして残す。

主な変更は、設定を svelte.config.js ではなくViteの設定ファイルにあるsveltekitプラグインへ渡すことだ。以前 kit 配下にあった項目はプラグインのトップレベルに移る。$lib は自動生成されなくなり、package.json の imports に宣言する #lib を使う。NodeのサブパスインポートをViteとTypeScriptが解決する形で、インポートには .js や .ts などの拡張子が必要になる。環境変数、Service Worker、エラー処理も整理された。

移行ガイドでは、csrf.checkOrigin が csrf.trustedOrigins に置き換わるなど、削除されたオプションも列挙されている。型安全なクライアント・サーバ通信であるremote functionsは未完成で、Async Svelteのexperimentalフラグがまだ必要だ。エージェントに移行を任せる場合も、移行コマンドが残すTODOとチェンジログに残る手作業をレビュー対象から外さない方がよい。