@defrex/autobuild-hosted-dispatcher

中文文档
1.6.0发布于 2026/11/12Apache-2.0TypeScriptES Module零依赖近 30 天下载 3007
中文使用文档
文档目录3 节
  1. 已装运的吉特
  2. 哪个提供者插件传送
  3. 调度器环境变量

@defrex/autobuild-hosted-dispatcher

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

通过安装软件包和安装 路径: 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( 见 已装运的吉特)和每个选定的供应商插件进入 函数捆绑。 它的建设失败, 命名缺失的棋子, 当它 无法传送归档、表单、 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 一、导 言 自主办指南。 。 。 .
  • 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_…","[email protected]: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; 见 相关项目。 。 。 . 在部署前移走 PostgreSQL 。 折旧 AB_WEB_REPOSITORIES 种子 每个数据库登记一次,包括独立的调度员部署; 其后的修改不是行政管理。 Forge 令牌覆盖密钥为 急切确认 在倒置模式中,被删除的工程的覆被是惰性的; a 明确的仓库选择仍然拒绝未知的密钥.

版本与发布记录

@defrex/autobuild-hosted-dispatcher 共发布 22 个版本,首次发布于 2026/10/03;过去 12 个月发布了 22 个版本。

版本发布日期距今
1.6.0latest2026/11/12今天
1.5.02026/11/092 天前
1.4.22026/11/048 天前
1.4.12026/11/039 天前
1.4.02026/11/039 天前
1.3.02026/10/2913 天前

其他发布通道:beta → 1.0.0-beta.4。

关于 @defrex/autobuild-hosted-dispatcher 的常见问题

如何安装 @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 和提交记录判断。