跳转到内容
搜索文档

使用多个 Workers 进行开发

最后更新 查看 MarkdownAgent 设置

构建复杂应用时,你可能希望在开发期间运行多个 Workers。本指南介绍在本地运行多个 Workers 的不同方法,以及各自适用的场景。

单个 dev 命令

你可以通过向 dev 服务器传入多个配置文件,在单个 dev 命令中运行多个 Workers:

使用 Wrangler

npx wrangler dev -c ./app/wrangler.jsonc -c ./api/wrangler.jsonc

第一个配置(./app/wrangler.jsonc)被视为主要 Worker,暴露在 http://localhost:8787。其他配置(例如 ./api/wrangler.jsonc)作为辅助 Workers 运行,可通过 service binding 或 tail consumer 从主要 Worker 访问。

使用 Vite 插件

在 Vite 配置中设置 auxiliaryWorkers

vite.config.jsjs
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 属于同一应用或同一代码库
  • 你需要使用 script_name 从另一个 Worker 访问 Durable Object 命名空间或 Workflow,或设置 producer 与 consumer Workers 分离的 Queues

多个 dev 命令

你也可以在独立的 dev 命令中运行每个 Worker,各自使用单独的终端和配置。

# Terminal 1
npx wrangler dev -c ./app/wrangler.jsonc
# Terminal 2
npx wrangler dev -c ./api/wrangler.jsonc

这些 Workers 在不同的 dev 命令中运行,但仍可通过 service binding 或 tail consumer 相互通信,无论它们是通过 wrangler dev 还是 vite dev 启动

在以下情况下使用此方法:

  • 你希望每个 Worker 在开发期间可通过各自的本地 URL 访问,因为使用单个 dev 命令时只有主要 Worker 会被暴露
  • 每个 Worker 有自己的构建设置或工具链——例如,一个使用带自定义插件的 Vite,另一个是纯 Wrangler 项目
  • 你需要灵活地独立运行和开发 Workers,而无需重构项目或合并配置

这种设置尤其适用于大型项目,其中每个团队维护一部分 Workers。在单个 dev 命令中运行所有内容可能需要大量重构或构建集成,而这并不总是可行。

这篇文档对您有帮助吗?