
こんにちは。よっしーです(^^)
今日は、SvelteKitにおいてSapperからの移行について解説しています。
背景
SvelteKitにおいてSapperからの移行について調査する機会がありましたので、その時の内容を備忘として記事に残しました。
Sapperからの移行について
SvelteKitはSapperの後継であり、その設計の多くの要素を共有しています。
既存のSapperアプリケーションをSvelteKitに移行する予定がある場合、いくつかの変更を加える必要があります。移行時に下記の例を参照すると役立つかもしれません。
- Sapperからの移行
- package.json
- プロジェクトファイル
- ページとレイアウト
- エンドポイント
- 統合
package.json
type: “module”
package.json
に"type": "module"
を追加してください。Sapper 0.29.3以降を使用している場合は、段階的な移行の一部として、この手順を他の作業と分けて実行することができます。
dependencies(依存関係)
polka
やexpress
を使用している場合は、それらを削除してください。また、sirv
やcompression
などのミドルウェアも削除してください。
devDependencies(開発依存関係)
devDependencies
からsapper
を削除し、代わりに@sveltejs/kit
と使用予定のアダプター(次のセクションを参照)を追加してください。
scripts(スクリプト)
sapper
を参照するスクリプトは以下のように更新する必要があります:
sapper build
は、Nodeアダプターを使用するvite build
に変更sapper export
は、静的アダプターを使用するvite build
に変更sapper dev
はvite dev
に変更node __sapper__/build
はnode build
に変更
解説
このセクションは、SapperからSvelteKitへの移行時に必要なpackage.json
の変更点を詳細に説明しています。主なポイントは以下の通りです:
- モジュールシステムの変更:
"type": "module"
の追加は、プロジェクトがES Modulesを使用することを示します- この変更は段階的に行うことができ、下位互換性が考慮されています
- 依存関係の整理:
- SapperではWebサーバーとして
polka
やexpress
を使用していましたが、SvelteKitではこれらが不要になります - 関連するミドルウェアも同様に削除が必要です
- 開発依存関係の更新:
- 核となる変更は
sapper
から@sveltejs/kit
への移行です - アダプターの概念が新しく導入されています
- スクリプトコマンドの変更:
- ビルドツールがSapperからViteに変更されています
- コマンド体系が大きく変更され、よりシンプルになっています
- デプロイメント方法によって使用するアダプターを選択する必要があります
この変更は、SvelteKitが新しいビルドシステム(Vite)を採用し、より柔軟なデプロイメントオプション(アダプター)を提供していることを示しています。また、より現代的なJavaScriptの機能(ES Modules)を標準で採用していることが分かります。
おわりに
今日は、 SvelteKitにおいてSapperからの移行について解説しました。

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント