# @defrex/autobuild-hosted-dispatcher 中文文档

规范地址：https://npmcn.com/package/%40defrex/autobuild-hosted-dispatcher/

版本：1\.6\.0
npm 元数据更新时间：2026-11-11T21:00:01.025Z
中文译文更新时间：2026-11-12T04:03:34.983Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40defrex/autobuild-hosted-dispatcher
原文对照：https://npmcn.com/package/%40defrex/autobuild-hosted-dispatcher/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：121 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@defrex/autobuild \>=0\.9\.0 \|\| \>=1\.0\.0-0 \<1\.0\.0，@defrex/autobuild-postgres-store \>=0\.11\.0 \|\| \>=1\.0\.0-0 \<1\.0\.0，@defrex/autobuild-hosted-store-service \>=0\.9\.0 \|\| \>=1\.0\.0-0 \<1\.0\.0
- 首次发布：2026-10-03T14:29:51.721Z
- 最新版本发布：2026-11-11T21:00:00.818Z
- 近 30 天下载量：3007（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：22（近 12 个月 22 个）

## 中文简介

暂无中文简介

## 安装

```sh
npm install @defrex/autobuild-hosted-dispatcher
```

也可以使用：`pnpm add @defrex/autobuild-hosted-dispatcher`、`yarn add @defrex/autobuild-hosted-dispatcher`、`bun add @defrex/autobuild-hosted-dispatcher`

## README

# `@defrex/autobuild-hosted-dispatcher`

让主机部署的可选软件包拥有调度内核: a 认证的终点 `GET /api/dispatch` 运行一个有界调度器 勾选每个配置的仓库。 它驱动同一个核心 `abDispatch` 本地切入点 `ab dispatch --once --repository <origin>` 通行证 -- -- 债权、供应、发射、观察、结算、合并公关、看门人、, 租赁扫描——和再利用 `@defrex/autobuild-hosted-store-service`已验证 存储签名密钥的环境。 见 [自主办指南](https://github.com/defrex/autobuild/blob/main/packages/hosted-store-service/SELF-HOSTING.md#dispatcher-enabled-deployment) 用于日程安排、功能持续时间和延后。 自宿无人支持 和买家小心.

通过安装软件包和安装 路径: Next.js app's `app/api/dispatch/route.ts` (在主机商店) 成套服务)进口 `dispatcherEndpoint` 从 `@defrex/autobuild-hosted-dispatcher/runtime` 并保留模块镜 举个例子 只有一个主机状态的部署不会安装,永远不会 尝试一个调度符。 软件包对等器打开 `@defrex/autobuild` (核心内容) 它驱动)和 `@defrex/autobuild-hosted-store-service` (环境) 解析器和类型; 安装它的部署 `bun add @defrex/autobuild-hosted-dispatcher`。 。 。 .

除了端点驱动器, 软件包拥有部署时间 `ab-hosted-dispatcher` bin,也导出为 `@defrex/autobuild-hosted-dispatcher/bin`组合部署没有 `bun` 或源树在运行时, 所以建筑必须携带一切 调度功能安装并加载. bin对此有两个命令:

-   `pack-distribution [--root DIR]`之前运行 `next build`,将安装的包装 `@defrex/autobuild` 输入 `<root>/.autobuild-dist/autobuild-<version>.tgz`。 。 。 . 它从其他版本中删除了遗留下来的档案.
-   `ship-deployment [--root DIR] [--dist-dir DIR] [--plugin NAME]...`之后运行 `next build`,将归档和分布表附加到 `/api/dispatch` 路由的下一个. js追踪。 然后开始部署 Git( 见 [已装运的吉特](https://npmcn.com/package/%40defrex/autobuild-hosted-dispatcher/#readme-shipped-git))和每个选定的供应商插件进入 函数捆绑。 它的建设失败, 命名缺失的棋子, 当它 无法传送归档、表单、 Git 或所选插件,并且当 归档版本与已安装版本不同 `@defrex/autobuild`。 。 。 .

主机店服务发布 `ab-hosted-service-build` 运行两个 此软件包安装时自动命令.

### 已装运的吉特

节点操作( snapshoting a node's parent, rescacking, 证明一个变化是 现在,着陆)跑 `git` 在发送函数中的赤克隆。 这个 Vercel 函数运行时间没有 `git`因此,部署舰只本身: `ship-deployment` 复制主机的 Git 输入 `<root>/.autobuild-git/` 并把它加进 `/api/dispatch` 捆绑,大约55MB。 这棵树是 自装: Git, 它的 HTTPS 远程助手, 完整的共享图书馆 关闭包括 glibc 和动态加载器,以及一个 CA 捆绑 .

-   **站点.** 目标是 `linux-x64`,而建造主机必须是一个,因为 Vercel的建筑形象是。 在任何其他主机上 `ship-deployment` 失败, 命名 两个平台。 当主机缺乏时也会失败 `git`, (中文(简体) ), `ldd`,吉特的HTTPS(英语:HTTPS) 帮助或 CA 捆绑,或当库无法解决时.
-   **建造时证.** 每个阶段的程序都被静态检查以加载 只从树上。 之后,这栋大楼用空置的吉特 `PATH`, (中文(简体) ), 在回转时复制到 HTTP, 如果从构建中加载到任何信息则失败 主持人。 构建日志报告 Git 和 glibc 版本, 大小 Git 添加 和调度功能的总数.
-   **运行时间合同.** 一个x86 64 Linux 内核至少与捆绑一样新 glibc 支持(记录在清单中,当前glibc为3.2)和 a 可写 `/tmp`。每个函数实例将树复制到固定 `/tmp/abg…` 路径在它的第一个 Git 命令之前一次.
-   **相隔无相.** 一个勾选的每个内核 Git 命令运行已运出 Git 的 其自己的库,没有系统或全局的 Git 配置, HTTPS 是唯一的 运输,所以它从来没有启动一个主机程序. 内核外壳管道到达 它通过一个 `git` 炮弹上的发射器 `PATH` 应用树的 库到 Git , 所以 shell 和其他主机程序保留 主持人的。 滴答日志行说 `kernelGit=shipped:<version>`,或 `kernelGit=host-path (<reason>)` 当 无法使用树 .

如果 Git 仍然无法运行, 调度员会记录一个 `dispatcher.kernel-git-unavailable` 寄存器事件,节点工作等待,以及 `dispatcher.kernel-git-recovered` 一旦克隆成功,则关闭条件.

### 哪个提供者插件传送

第一条适用的规则决定:

1.  `ship-deployment --plugin NAME` 旗帜.
2.  部署 `package.json` 字段 `"autobuild": { "plugins": [...] }`。 。 。 . 明确 `[]` 没有船.
3.  默认情况下,部署的每个条目 `dependencies` 已经安装的 `package.json` 声明 `@defrex/autobuild` 内 `peerDependencies`,作为 供应商插件是。 默认跳过 Autubuild 自己的服务包 : `@defrex/autobuild-hosted-store-service`, (中文(简体) ), `@defrex/autobuild-hosted-dispatcher` 财务报告和审定财务报表 `@defrex/autobuild-postgres-store`。 。 。 .

每个被选中的软件包必须在部署中安装并捆绑. 它的捆绑还必须评估到有效的插件清单 。 失败 构建,命名软件包和选择软件包的规则。 大楼 导入每个捆绑一次以验证它, 因此插件中的顶级代码运行 在建造期间.

一个自成一体的插件船 `bun build` 已装入 `node_modules/<plugin>` 在安装的内 `@defrex/autobuild` 目录. 当发送运行时间解决插件时, 这是第一个看起来的地方 从它的安装。 部署中自己安装的插件副本是 从未修改。 本地建筑没有 `VERCEL` 设置去除已播放的捆绑 后来,所以 `node_modules` 保持原样 `bun install` 离开它.

## 调度器环境变量

调度器变量( 只有服务器, 像每个秘密一样; 没有到达浏览器) :

-   `AB_DISPATCHER_ORIGIN`: 部署的公共来源,用作 `AB_STORE` 给内核、主机票源和客人 绝对https(s) 来源; 生产中所需的https.
-   `AB_DISPATCHER_REPOSITORIES`: 逗号分离的寄存器 按配置顺序选择,并与当前持久工程相交 登记。 当未设定时, 每个授权引用查询都会激活 登记。 空登记册是成功的零项目勾选 。 删除 项目停止后续的勾选,而不取消已经开始的工作. 登记失败未能结案。 配置 `AB_POSTGRES_URL` 或者说 `DATABASE_URL`· ; 登记册库在每次引用时都会重复使用. 每次援引都使被包容和被排斥者的持久安置同步 发送前已注册的项目; 同步失败防止 项目的调度。 项目读取在第一克龙之前发布相同的选择. 未设置或空白 `CRON_SECRET` 禁用主机责任; 读取发布 `hosted: false` 不需要来源.
-   `AB_DISPATCHER_BUDGET_SECONDS`:每次调用工作预算(默认240, 夹了10 -780; 与路线的配对 `maxDuration` 一、导 言 [自主办指南](https://github.com/defrex/autobuild/blob/main/packages/hosted-store-service/SELF-HOSTING.md#function-duration-and-budget)。 。 。 .
-   `AB_DISPATCHER_TOKEN_TTL_SECONDS`: 存储的证书上方绑定 寿命( 默认为 604800 — 7天; 最少为 360天) 实际期满上限为 引用期限加60秒。 成功和失败的勾选删除 其确切的证书; 产地建造和收获使用独立赠款 由耐用生命周期的事实退休。 每个已服务仓库最多可浏览 每滴100个已过期/已撤销调度列. 保留未过期的行 (b) 所有人证书不受影响.
-   `CRON_SECRET`:克龙授权共享秘密. 未设置或空白禁用 终点完全。 它从来不是签名输入,与 `AB_STORE_SECRET`。 。 。 .
-   `GITHUB_TOKEN` 或者说 `GH_TOKEN`: 共享伪造证书 其出版结算)的使用. 他们继续服务,客人从不 接受一个.
-   `AB_DISPATCHER_GITHUB_TOKENS`: 可选的每个仓库伪造证书 覆盖 — 一个 JSON 对象映射寄存器身份到 GitHub 令牌 材料,例如:. `{"https://github.com/acme/one":"github_pat_…","git@github.com:acme/two.git":"ghp_…"}`。 。 。 . 密钥接受与寄存器集相同的拼写并必须指定一个已发送 寄存器; 带有超文本认证其调度器的寄存器 与该标志(两者) `GITHUB_TOKEN` 财务报告和审定财务报表 `GH_TOKEN`),所有其他存储器 保留共享 `GITHUB_TOKEN`编号 :`GH_TOKEN`。未设置表示只共享,并且 a 没有失败的寄存器 与本地的检出模式不同的是 调度员 键 从未出现在日志、回复或文物中; 服务器只像每一个秘密一样 见上文.
-   来宾前置变量,如 `AI_GATEWAY_API_KEY` 流经 向来宾会场提供的服务环境未受影响.
-   `AB_DISTRIBUTION_ARCHIVE`: 客机分发的可选明确路径 存档 。 未设置, 内核使用归档 `ab-hosted-dispatcher pack-distribution` 致 `.autobuild-dist/` 期间 部署结构(对捆绑部署的要求,没有 `bun` 在运行时打包.

Sandbox SDK 认证了内部部署的 OIDC 身份 Vercel函数( `x-vercel-oidc-token` 请求头,转发到 内核为 `VERCEL_OIDC_TOKEN` 说到滴答) **没有 `VERCEL_TOKEN` 属于服务**每一援引保证书a `dispatcher-effective-config` 仓库文物和耐久的勾/运行事实 下划线 `hosted-dispatcher-<uuid>` 运行 id —— 托管的网络仪表板显示 活动与显示的本地调度员完全一致。 仓库日记 事件每寄存器大约每分钟增长一滴; 运行/配置文物本身是保留范围——商店保存 每件发件人文物的最新200件订正件和旧订正件 存款时间,最高 `AB_ARTIFACT_RETENTION_MAX_REVISIONS`。 。 。 .

通过部署数据库授权管理项目 `ab-hosted-store projects list|add|remove` 命令(需要修改) `--user IDENTITY`; 见 [相关项目](https://github.com/defrex/autobuild/blob/main/packages/hosted-store-service/README.md#connected-projects)。 。 。 . 在部署前移走 PostgreSQL 。 折旧 `AB_WEB_REPOSITORIES` 种子 每个数据库登记一次,包括独立的调度员部署; 其后的修改不是行政管理。 Forge 令牌覆盖密钥为 急切确认 在倒置模式中,被删除的工程的覆被是惰性的; a 明确的仓库选择仍然拒绝未知的密钥.

## 常见问题

### 如何安装 @defrex/autobuild-hosted-dispatcher？

在项目目录运行 npm install @defrex/autobuild-hosted-dispatcher，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@defrex/autobuild（\>=0\.9\.0 \|\| \>=1\.0\.0-0 \<1\.0\.0）、@defrex/autobuild-postgres-store（\>=0\.11\.0 \|\| \>=1\.0\.0-0 \<1\.0\.0）、@defrex/autobuild-hosted-store-service（\>=0\.9\.0 \|\| \>=1\.0\.0-0 \<1\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。它还提供命令行工具 ab-hosted-dispatcher，可以用 npx ab-hosted-dispatcher 直接运行。

### @defrex/autobuild-hosted-dispatcher 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @defrex/autobuild-hosted-dispatcher 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @defrex/autobuild-hosted-dispatcher 可以商用吗？

@defrex/autobuild-hosted-dispatcher 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @defrex/autobuild-hosted-dispatcher 的下载量有多少？

根据 npm 官方下载统计，@defrex/autobuild-hosted-dispatcher 在 2026/10/12 – 2026/11/10 这 30 天内被下载 3,007 次，日均约 100 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @defrex/autobuild-hosted-dispatcher 还在维护吗？

最新版本 1\.6\.0 发布于 2026/11/12（今天）；至今共发布 22 个版本，其中过去 12 个月发布了 22 个；首次发布于 2026/10/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

