← Cloudflare Workers / workers / local-development
Разработка с несколькими Workers
При разработке сложных приложений может потребоваться запускать несколько Workers одновременно. В этом руководстве рассматриваются разные подходы к локальному запуску нескольких Workers и случаи, когда стоит применять каждый из них.
Единая команда для разработки
Несколько Workers можно запустить одной командой разработки, передав серверу разработки несколько конфигурационных файлов:
Использование Wrangler
npx wrangler dev -c ./app/wrangler.jsonc -c ./api/wrangler.jsoncПервая конфигурация (./app/wrangler.jsonc) считается основным Worker и доступен по адресу http://localhost:8787. Дополнительные конфигурации (например, ./api/wrangler.jsonc) выполняются как вспомогательные Workers, доступные из основного Worker через service bindings или tail consumers.
Использование плагина Vite
Настройте auxiliaryWorkers в конфигурации Vite:
import { defineConfig } from "vite";
import { cloudflare } from "@cloudflare/vite-plugin";
export default defineConfig({
plugins: [
cloudflare({
configPath: "./app/wrangler.jsonc",
auxiliaryWorkers: [
{
configPath: "./api/wrangler.jsonc",
},
],
}),
],
});Затем выполните:
npx vite devИспользуйте этот подход, если:
- Вам нужна максимально простая настройка для разработки
- Workers являются частью одного и того же приложения или кодовой базы
- Вам нужно обратиться к Durable Object namespace или Workflow из другого Worker с помощью
script_name, либо настройте Queues, где Worker производителя и Worker потребителя разделены.
Несколько команд dev
Также каждый Worker можно запускать отдельной командой dev, с собственным терминалом и конфигурацией.
# Terminal 1
npx wrangler dev -c ./app/wrangler.jsonc# Terminal 2
npx wrangler dev -c ./api/wrangler.jsoncЭти Workers запускаются разными командами dev, но всё равно могут взаимодействовать друг с другом через service bindings или tail consumers независимо от того, начинаются ли они с wrangler dev или vite dev.
Используйте этот подход, если:
- Вы хотите, чтобы во время разработки каждый Worker был доступен по собственному локальному URL, поскольку при использовании одной команды dev доступен только основной Worker
- У каждого Worker есть собственная система сборки или набор инструментов: например, один использует Vite с пользовательскими плагинами, а другой представляет собой обычный проект на Wrangler
- Вам нужна гибкость, чтобы запускать и разрабатывать Workers независимо друг от друга без реструктуризации проекта и объединения конфигураций
Такая настройка особенно полезна в крупных проектах, где каждая команда отвечает за часть Workers. Запуск всего через одну команду dev может потребовать значительной перестройки или интеграции сборки, что не всегда практично.