こんにちは。よっしーです(^^)
今日は、SvelteKitのプロジェクトについて解説しています。
背景
SvelteKitのプロジェクトについて調査する機会がありましたので、その時の内容を備忘として記事に残しました。
プロジェクト構造
プロジェクト構造は下記のようになっています。
my-project/
├ src/
│ ├ lib/
│ │ └ [your lib files]
│ ├ routes/
│ │ └ [your routes]
│ ├ app.html
│ ├ error.html
│ ├ hooks.client.js
│ ├ hooks.server.js
│ └ service-worker.js
├ static/
│ └ [your static assets]
├ package.json
├ svelte.config.js
├ tsconfig.json
└ vite.config.js
src
srcディレクトリにはプロジェクトの本体が含まれます。 src/routes と src/app.html
以外はすべてオプションです。
- libにはライブラリコード(ユーティリティとコンポーネント)が含まれており、$libエイリアス経由でインポートするか、svelte-packageを使用して配布用にパッケージ化することができます。
server
サーバー専用のライブラリ コードが含まれています。$lib/server
エイリアスを使用してインポートできます。SvelteKit は、これらをクライアント コードにインポートできないようにします。
routes
アプリケーションのルートが含まれます。単一のルート内でのみ使用される他のコンポーネントをここに共存させることもできます。app.html
ページ テンプレートは、次のプレースホルダーを含む HTML ドキュメントです。%sveltekit.head%
—アプリに必要な要素<link>
とコンテンツ<script>
<svelte:head>
%sveltekit.body%
— レンダリングされたページのマークアップ。ブラウザ拡張機能が要素を挿入してハイドレーションプロセスによって破壊されることによるバグを防ぐため<div>
、 または他の要素内に配置する必要があり、 内に直接配置する必要はありません<body>
。そうでない場合、SvelteKit は開発中に警告を発します。%sveltekit.assets%
—paths.assets
(指定されている場合)、または相対パスpaths.base
%sveltekit.nonce%
—手動で追加されたリンクやスクリプトのCSP nonce(使用される場合)%sveltekit.env.[NAME]%
– これはレンダリング時に環境変数に置き換えられます。環境変数は(通常は)[NAME]
で始まる必要があります。一致しない場合はにフォールバックします。publicPrefix
PUBLIC_
''
error.html
他のすべてが失敗したときにレンダリングされるページです。次のプレースホルダーを含めることができます。
(プロジェクトにファイルが含まれているかどうかは.js
、.ts
プロジェクトの作成時に TypeScript を使用するかどうかによって異なります。)
static
robots.txt や favicon.png など、そのまま提供する必要がある静的アセットはすべてここに入力します。
package.json
package.json ファイルには、devDependencies として @sveltejs/kit、svelte、vite が含まれている必要があります。
npm create svelte@latest でプロジェクトを作成すると、package.json に “type”: “module” が含まれていることにも気付くでしょう。これは、.js ファイルが import および export キーワードを含むネイティブ JavaScript モジュールとして解釈されることを意味します。レガシー CommonJS ファイルには、.cjs ファイル拡張子が必要です。
svelte.config.js
このファイルには、Svelte および SvelteKit の構成が含まれています
tsconfig.json
このファイル (または、.ts ファイルよりも型チェックされた .js ファイルを好む場合は jsconfig.json) は、npm create svelte@latest 中に型チェックを追加した場合に TypeScript を構成します。SvelteKit は特定の方法で設定された特定の構成に依存しているため、独自の構成で拡張される独自の .svelte-kit/tsconfig.json ファイルを生成します。
vite.config.ts
SvelteKit プロジェクトは、実際には @sveltejs/kit/vite プラグインと他の Vite 構成を使用する単なる Vite プロジェクトです。
.svelte-kit
プロジェクトを開発およびビルドすると、SvelteKit は .svelte-kit ディレクトリ (outDir として構成可能) にファイルを生成します。その内容は無視して、いつでも削除できます (次回の開発またはビルド時に再生成されます)。
おわりに
今日は、 SvelteKitのプロジェクトについて解説しました。
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント