adapter を書く
Edit this page on GitHubあなたが使いたい環境向けの adapter がまだ存在しない場合は、ご自身で adapter を作成することができます。あなたが使いたい環境に似ているプラットフォームの adapter のソースを見て、コピーするところから始めることをおすすめします。
Adapter パッケージは以下の API を実装しなければなりません。これによって Adapter
が作られます:
ts
/** @param {AdapterSpecificOptions} options */export default function (options ) {constadapter = {name : 'adapter-package-name',asyncadapt (builder ) {// adapter implementation}};returnadapter ;}
Adapter
の型とそのパラメータは types/index.d.ts にて利用可能です。
adapt
メソッドの中で、adapter が行うべきことがいくつかあります:
- build ディレクトリの掃除
- SvelteKit の出力を
builder.writeClient
、builder.writeServer
、builder.writePrerendered
で書き出す - これらのコードを出力する:
${builder.getServerDirectory()}/index.js
からServer
をインポートするbuilder.generateManifest({ relativePath })
で生成された manifest でアプリをインスタンス化する- 必要に応じて、プラットフォームからのリクエストをリスン(Listen)しそのリクエストを標準の Request に変換し、
server.respond(request, { getClientAddress })
関数を呼び出して Response を生成して応答する server.respond
に渡されるplatform
オプションを使用してプラットフォーム固有の情報を SvelteKit に公開する- 必要に応じて、ターゲットのプラットフォームで動作するよう
fetch
をグローバルにシム(shim)する。SvelteKit は、プラットフォームがnode-fetch
を使用できるようにするための@sveltejs/kit/install-fetch
ヘルパーを提供しています
- 必要に応じて、ターゲットのプラットフォームで依存関係(dependencies)をインストールするのを避けるため、出力をバンドルする
- ユーザーの静的ファイルと生成された JS/CSS をターゲットのプラットフォームにとって適切な場所に配置する
可能であれば、adapter の出力は build/
ディレクトリに置き、中間出力は .svelte-kit/[adapter-name]
に置くことをおすすめします。