Svelte (SvelteKit) アプリ内の Svelte コンポーネントや JavaScript/TypeScript ライブラリでは、JSON ファイルを import
文で簡単に読み込めるようになっています(正確には Vite の Static Asset Handling の仕組みを利用しています)。
ここでは、サンプルデータとして下記のようなゲームソフト情報を含んだ JSON ファイルを用意します。
この JSON ファイルはビルド時にインポートするので、static
ディレクトリではなく src
ディレクトリのどこかに配置します(ここでは、lib/assets
というディレクトリに配置しています)。
このファイルを Svelte コンポーネントから直接インポートしてもよいのですが、次のように明示的に TypeScript の型情報を付加するライブラリでラップしておくと便利かもしれません。
実際には、明示的に型情報を付加しなくても、JSON ファイルの内容から自動的に型情報を推測してくれます。 ただ、上記のように型情報を定義することで、ドキュメントテーションコメントを記述できたり、JSON ファイル内のデータが想定外の型で記述されているときに警告してくれるというメリットがあります。
あとは、このモジュールを任意の Svelte コンポーネントからインポートして使います。
次のような感じの内容で出力されれば成功です。
<ul>
<li>シャドウラン (1996-02-23) 7800円</li>
<li>トムキャットアレイ (1994-12-22) 7800円</li>
<li>真・女神転生 (1994-02-25) 価格不明</li>
</ul>
この JSON インポート処理はビルド時に実行されるので、Svelte アプリを SSG (Static Site Generation) ビルドするときにも使うことができます。 JSON ファイルの代わりに YAML ファイルをインポートしたいときは次の記事を参考にしてください。