Svelte入門:リファレンス @sveltejs/kit -Vol.24-

スポンサーリンク
Svelte入門:リファレンス @sveltejs/kit -Vol.24- 用語解説
Svelte入門:リファレンス @sveltejs/kit -Vol.24-
この記事は約5分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、SvelteKitのリファレンスについて解説しています。

スポンサーリンク

背景

SvelteKitのリファレンスについて調査する機会がありましたので、その時の内容を備忘として記事に残しました。

@sveltejs/kit

Prerendered

interface Prerendered {…}
pages: Map
string,
{
	/** 出力ディレクトリを基準とした.htmlファイルの場所 */
	file: string;
}
>;

pathから{ file }オブジェクトへのマップです。/fooのようなパスはfoo.htmlに対応し、/bar/のようなパスはbar/index.htmlに対応します。

assets: Map
string,
{
	/** アセットのMIMEタイプ */
	type: string;
}
>;

pathから{ type }オブジェクトへのマップです。

redirects: Map
string,
{
	status: number;
	location: string;
}
>;

プリレンダリング中に検出されたリダイレクトのマップです。

paths: string[];

プリレンダリングされたパスの配列(trailingSlash設定に関わらず、末尾のスラッシュはありません)

解説

Prerenderedインターフェースは、SvelteKitのプリレンダリング処理の結果を表す構造体です。プリレンダリングプロセスが完了した後、このインターフェースはアプリケーションの静的に生成された部分に関する情報を包括的に提供します。

主要なプロパティ

pages

  • 目的: プリレンダリングされたHTMLページに関する情報を保持
  • 構造: Map<string, { file: string }>
  • キー: ウェブパス(例: /about/blog/post-1
  • : ファイルパス情報を含むオブジェクト
  • 使用例:
    • /foofoo.html
    • /bar/bar/index.html
  • 用途: 静的ファイルのデプロイや後処理に利用

assets

  • 目的: 静的アセット(画像、スタイルシート、JavaScriptファイルなど)に関する情報
  • 構造: Map<string, { type: string }>
  • キー: アセットのパス(例: /images/logo.png
  • : MIMEタイプ情報(例: { type: 'image/png' }
  • 用途: CDN設定、キャッシュ戦略、リソースヘッダーの設定に利用

redirects

  • 目的: プリレンダリング中に検出されたリダイレクトルールを保持
  • 構造: Map<string, { status: number, location: string }>
  • キー: リダイレクト元のパス
  • :
    • status: HTTPステータスコード(301、302など)
    • location: リダイレクト先のURL
  • 用途: 静的ホスティング環境でのリダイレクト設定の生成に利用

paths

  • 目的: プリレンダリングされたすべてのパスの配列
  • 形式: 末尾のスラッシュなしの文字列配列
  • 注意点: trailingSlash設定に関わらず、常に末尾のスラッシュなしで格納
  • 用途: サイトマップ生成、全ページリストの作成に利用
実践的な使用例

このインターフェースは、SvelteKitのアダプターやプラグインで以下のような用途に使用されます:

  1. 静的ホスティング設定の生成: // Netlify用の_redirectsファイル生成の例 function generateRedirects(prerendered) { let content = ''; for (const [path, { status, location }] of prerendered.redirects) { content += `${path} ${location} ${status}\n`; } return content; }
  2. サイトマップの生成: function generateSitemap(prerendered) { const baseUrl = 'https://example.com'; return ` <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> ${prerendered.paths.map(path => ` <url> <loc>${baseUrl}${path}</loc> </url> `).join('')} </urlset> `; }
  3. デプロイ後処理: function postProcess(prerendered) { // HTMLページにサービスワーカー登録スクリプトを追加 for (const [path, { file }] of prerendered.pages) { // ファイルを読み込んで加工... } }

このインターフェースは、SvelteKitのプリレンダリング結果を外部ツールやプロセスと連携させる際の重要な橋渡し役となります。

おわりに

今日は、 SvelteKitのリファレンスについて解説しました。

よっしー
よっしー

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

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました