よっしー
こんにちは。よっしーです(^^)
今日は、SvelteKitでの移行について解説しています。
背景
SvelteKitでの移行について調査する機会がありましたので、その時の内容を備忘として記事に残しました。
依存関係の要件が更新されました
SvelteKit 2では、Node 18.13
以上と、以下の最低限の依存関係バージョンが必要です:
svelte@4
vite@5
typescript@5
@sveltejs/vite-plugin-svelte@3
(これは現在SvelteKitのpeerDependency
として必要です — 以前は直接依存していました)@sveltejs/adapter-cloudflare@3
(これらのアダプターを使用している場合)@sveltejs/adapter-cloudflare-workers@2
@sveltejs/adapter-netlify@3
@sveltejs/adapter-node@2
@sveltejs/adapter-static@3
@sveltejs/adapter-vercel@4
svelte-migrate
がpackage.json
を更新してくれます。
TypeScriptのアップグレードの一環として、生成されるtsconfig.json
(あなたのtsconfig.json
が継承するもの)は現在"moduleResolution": "bundler"
(package.jsonのexports
マップからの型を適切に解決するため、TypeScriptチームによって推奨されています)とverbatimModuleSyntax
(既存のimportsNotUsedAsValues
とpreserveValueImports
フラグを置き換えます — あなたのtsconfig.json
にこれらがある場合は削除してください。svelte-migrate
がこれを行ってくれます)を使用します。
解説
この変更は、SvelteKit 2における依存関係とTypeScript設定の重要な更新について説明しています:
- 最小要件の更新:
- Node.js: 18.13以上が必要
- 主要な依存パッケージの必須バージョン:
- Svelte 4
- Vite 5
- TypeScript 5
- アダプターの更新:
- 各種デプロイ用アダプターの最新バージョンが必要
- Cloudflare、Netlify、Node、Static、Vercelなどのアダプターが対象
- 依存関係の構造変更:
@sveltejs/vite-plugin-svelte
がピア依存関係に変更- より柔軟な依存関係管理が可能に
- TypeScript設定の更新:
moduleResolution
: “bundler”- TypeScriptチーム推奨の設定
- package.jsonの
exports
マップからの型解決を改善 verbatimModuleSyntax
の導入- 古い設定を置き換え
importsNotUsedAsValues
preserveValueImports
- 移行サポート:
svelte-migrate
ツールが自動的に:package.json
の更新tsconfig.json
の設定変更
を行ってくれます
これらの更新により:
より安定したビルドプロセス
が実現されます。
より新しい機能の活用
より良いタイプ解決
おわりに
今日は、 SvelteKitでの移行について解説しました。
よっしー
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント