Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

プログラムによる設定

最終更新 Markdown で表示Agent セットアップ

Cloudflare Vite プラグインを使う場合、Wrangler 設定ファイルは任意です。ファイルがない場合、プラグインはデフォルト値を使います。Worker の設定は config オプションでプログラムからカスタマイズできます。Cloudflare プラグインが別のプラグインやフレームワークの内部で動く場合に便利です。

デフォルト設定

設定ファイルがない場合、プラグインはアセットのみの Worker 向けに妥当なデフォルトを生成します。namepackage.json またはプロジェクトディレクトリ名から決まります。compatibility_date は、インストール済み Miniflare バージョンが対応する最新日付です。

config オプション

config オプションでは、Worker をプログラムから設定する方法が 3 つあります。Wrangler 設定ファイル の任意のプロパティを設定できます。ただし一部のオプションは 無視されるか、Vite 側の同等機能に置き換わります

設定オブジェクト

config にオブジェクトを渡すと、デフォルトおよび Wrangler 設定ファイルの値とマージされます。

vite.config.tsts
import { defineConfig } from "vite";
import { cloudflare } from "@cloudflare/vite-plugin";

export default defineConfig({
	plugins: [
		cloudflare({
			config: {
				compatibility_date: "2025-01-01",
				vars: {
					API_URL: "https://api.example.com",
				},
			},
		}),
	],
});

これらの値は Wrangler 設定ファイルの値とマージされ、config の値が優先されます。

動的な設定関数

既存の設定値や外部データに依存する場合、または値を計算・条件付きで設定する場合は、関数を使います。

vite.config.tsts
import { defineConfig } from "vite";
import { cloudflare } from "@cloudflare/vite-plugin";

export default defineConfig({
	plugins: [
		cloudflare({
			config: (userConfig) => ({
				vars: {
					WORKER_NAME: userConfig.name,
					BUILD_TIME: new Date().toISOString(),
				},
			}),
		}),
	],
});

関数には現在の設定(デフォルト、または読み込んだ設定ファイル)が渡されます。マージする値のオブジェクトを返します。

その場での編集

config 関数は、上書き値を返す代わりに、設定オブジェクトを直接変更できます。プロパティの削除や配列要素の削除に便利です。

vite.config.tsts
import { defineConfig } from "vite";
import { cloudflare } from "@cloudflare/vite-plugin";

export default defineConfig({
	plugins: [
		cloudflare({
			config: (userConfig) => {
				// Replace all existing compatibility flags
				userConfig.compatibility_flags = ["nodejs_compat"];
			},
		}),
	],
});

補助 Worker(Auxiliary Workers)

補助 Worker も config オプションに対応しており、設定ファイルなしでマルチ Worker 構成を作れます。

auxiliaryWorkers 配列内の config を使い、設定ファイルなしで補助 Worker を定義します。

vite.config.tsts
import { defineConfig } from "vite";
import { cloudflare } from "@cloudflare/vite-plugin";

export default defineConfig({
	plugins: [
		cloudflare({
			config: {
				name: "entry-worker",
				main: "./src/entry.ts",
				compatibility_date: "2025-01-01",
				services: [{ binding: "API", service: "api-worker" }],
			},
			auxiliaryWorkers: [
				{
					config: {
						name: "api-worker",
						main: "./src/api.ts",
						compatibility_date: "2025-01-01",
					},
				},
			],
		}),
	],
});

設定の上書き

設定ファイルと config を組み合わせて、特定の値だけを上書きできます。

vite.config.tsts
import { defineConfig } from "vite";
import { cloudflare } from "@cloudflare/vite-plugin";

export default defineConfig({
	plugins: [
		cloudflare({
			configPath: "./wrangler.jsonc",
			auxiliaryWorkers: [
				{
					configPath: "./workers/api/wrangler.jsonc",
					config: {
						vars: {
							ENDPOINT: "https://api.example.com/v2",
						},
					},
				},
			],
		}),
	],
});

設定の継承

補助 Worker は、config 関数の第 2 引数で、解決済みのエントリ Worker 設定を受け取ります。これにより、エントリ Worker の設定を補助 Worker へ継承しやすくなります。

vite.config.tsts
import { defineConfig } from "vite";
import { cloudflare } from "@cloudflare/vite-plugin";

export default defineConfig({
	plugins: [
		cloudflare({
			auxiliaryWorkers: [
				{
					config: (_, { entryWorkerConfig }) => ({
						name: "auxiliary-worker",
						main: "./src/auxiliary-worker.ts",
						// Inherit compatibility settings from entry Worker
						compatibility_date: entryWorkerConfig.compatibility_date,
						compatibility_flags: entryWorkerConfig.compatibility_flags,
					}),
				},
			],
		}),
	],
});

設定のマージ動作

config オプションは、設定オブジェクトのマージに defu を使います。

  • オブジェクトのプロパティは再帰的にマージされます
  • 配列は連結されます(先に config の値、その後に既存の値)
  • config のプリミティブ値は既存の値を上書きします
  • configundefined は既存の値を上書きしません

役に立ちましたか?