← Cloudflare Workers / workers / vite-plugin / reference
Программная конфигурация
Файл конфигурации Wrangler необязателен при использовании плагина Cloudflare для Vite. Без него плагин использует значения по умолчанию. Настроить конфигурацию Worker программно можно с помощью config параметр. Это полезно, когда плагин Cloudflare работает внутри другого плагина или фреймворка.
Конфигурация по умолчанию
Без файла конфигурации плагин генерирует разумные значения по умолчанию для Worker, работающего только с assets. name берётся из package.json или имя каталога проекта. compatibility_date использует последнюю дату, поддерживаемую установленной версией Miniflare.
config параметр
config параметр предлагает три способа программной настройки вашего Worker. Вы можете задать любое свойство из конфигурационный файл Wrangler, хотя некоторые параметры игнорируются или заменяются эквивалентами Vite.
Объект конфигурации
Задайте config в объект, чтобы задать значения, которые объединяются со значениями по умолчанию и настройками файла конфигурации Wrangler:
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 значения имеют приоритет.
Функция динамической конфигурации
Используйте функцию, если конфигурация зависит от существующих значений конфигурации или внешних данных, либо если значения нужно вычислять или задавать условно:
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(),
},
}),
}),
],
});Функция получает текущую конфигурацию (значения по умолчанию или загруженный файл конфигурации). Верните объект со значениями для объединения.
Редактирование на месте
A config функция может напрямую изменять объект конфигурации вместо возврата переопределений. Это удобно для удаления свойств или элементов массива:
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"];
},
}),
],
});Вспомогательные Workers
Вспомогательные Workers также поддерживают config параметр, позволяющий строить multi-Worker архитектуры без файлов конфигурации.
Определяйте вспомогательные Workers без файлов конфигурации с помощью config внутри auxiliaryWorkers массив:
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 чтобы переопределить отдельные значения:
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",
},
},
},
],
}),
],
});Наследование конфигурации
Вспомогательные Workers получают итоговую конфигурацию entry Worker во втором параметре функции config функция. Благодаря этому вспомогательные Workers легко наследуют конфигурацию от входного Worker.
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переопределяет существующие значения undefinedзначения вconfigне перезаписывают существующие значения