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とチェンジログに残る手作業をレビュー対象から外さない方がよい。