
こんにちは。よっしーです(^^)
今日は、SvelteKitのリファレンスについて解説しています。
背景
SvelteKitのリファレンスについて調査する機会がありましたので、その時の内容を備忘として記事に残しました。
$service-worker
import { base, build, files, prerendered, version } from '$service-worker';
このモジュールはサービスワーカーでのみ利用可能です。
解説
SvelteKitのサービスワーカー内で使用できる特殊なモジュール$service-worker
について説明しています。
- サービスワーカー専用:
- このモジュールはサービスワーカー内でのみ使用できます
- 通常のSvelteコンポーネントやページからはアクセスできません
- 提供される値:
base
– アプリケーションのベースパスbuild
– ビルドファイルに関する情報files
– 静的ファイルに関する情報prerendered
– プリレンダリングされたページの情報version
– アプリケーションのバージョン情報
- 用途:
- これらの値はサービスワーカーでのキャッシュ戦略の実装に役立ちます
- 例えば、新しいバージョンがデプロイされたときに古いキャッシュを消去するなどの処理が可能になります
サービスワーカーは、オフライン機能の提供やパフォーマンス向上のためのキャッシュ戦略の実装に使用され、このモジュールはそれらの実装を支援するための情報を提供します。
base
デプロイメントのbase
パスです。通常、これはconfig.kit.paths.base
と同等ですが、location.pathname
から計算されるため、サイトがサブディレクトリにデプロイされた場合でも正しく動作し続けます。config.kit.paths.assets
が指定されている場合はサービスワーカーを使用できないため、base
はありますがassets
はないことに注意してください。
const base: string;
解説
SvelteKitのサービスワーカーモジュール内で利用可能なbase
変数について説明しています。
base
の目的:- デプロイメントのベースパスを提供します
- アプリケーションがサブディレクトリにデプロイされている場合でも、正しいパス参照を可能にします
- 値の決定方法:
- 通常は
config.kit.paths.base
と同じ値ですが - 実際には
location.pathname
から動的に計算されるため、より信頼性が高いです
- 通常は
assets
との違い:base
は提供されますが、assets
は提供されません- これは
config.kit.paths.assets
が指定されている場合、サービスワーカーが使用できないためです
- 型情報:
base
は文字列型(string)として定義されています
このbase
変数は、サービスワーカー内でリソースのパスを正しく参照するために重要です。例えば、キャッシュするファイルのURLを構築する際に使用されます。サブディレクトリへのデプロイメントシナリオでも正しく動作するように設計されています。
build
Viteによって生成されたファイルを表すURL文字列の配列で、cache.addAll(build)
でキャッシュするのに適しています。開発中は、これは空の配列です。
const build: string[];
解説
SvelteKitのサービスワーカーモジュール内で利用可能なbuild
変数について説明しています。
build
の内容:- Viteビルドプロセスによって生成されたすべてのファイルのURLを含む配列です
- これには、JavaScript、CSS、およびその他のアセットファイルが含まれます
- 主な用途:
- サービスワーカーのインストール段階で
cache.addAll(build)
を使用して、これらのビルドファイルをキャッシュするのに適しています - これにより、アプリケーションのコアファイルをオフラインで利用できるようになります
- サービスワーカーのインストール段階で
- 開発環境での動作:
- 開発環境(
npm run dev
など)では、この配列は空になります - これは開発中にはサービスワーカーのキャッシュによる干渉を避けるためです
- 開発環境(
- 型情報:
build
は文字列の配列(string[])として定義されています
この変数は、サービスワーカーでアプリケーションのビルドファイルをキャッシュする際に非常に便利です。プロダクションビルドでは、ユーザーがオフラインになった場合でもアプリケーションの主要部分が動作するように、これらのファイルをキャッシュすることが一般的なパターンです。
おわりに
今日は、 SvelteKitのリファレンスについて解説しました。

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