# @crvouga/mockingbird-fleet 中文文档

规范地址：https://npmcn.com/package/%40crvouga/mockingbird-fleet/

版本：0\.6\.0
npm 元数据更新时间：2026-11-11T01:59:48.230Z
中文译文更新时间：2026-11-11T09:15:49.960Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40crvouga/mockingbird-fleet
原文对照：https://npmcn.com/package/%40crvouga/mockingbird-fleet/?lang=original
项目主页：https://github.com/crvouga/mockingbird/tree/main/packages/adapters/fleet#readme
源码仓库：https://github.com/crvouga/mockingbird

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

- 包体积（解压后）：1.1 MB，9 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.0\.0
- 运行依赖：1 个
- 首次发布：2026-10-17T03:31:22.236Z
- 最新版本发布：2026-11-11T01:59:47.791Z
- 近 30 天下载量：2507（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：16（近 12 个月 16 个）

## 中文简介

销售商中立的机队生命周期,发现,档案和Mockingbird模拟器的控制客户端.

## 安装

```sh
npm install @crvouga/mockingbird-fleet
```

也可以使用：`pnpm add @crvouga/mockingbird-fleet`、`yarn add @crvouga/mockingbird-fleet`、`bun add @crvouga/mockingbird-fleet`

## README

# @crvouga/ 嘲笑鸟儿- fleet

> 本地模拟器。 真正的API合同. 部分 [嘲笑鸟](https://github.com/crvouga/mockingbird)。 。 。 .

供应商中立节点.js车队管理. 要求节点.js 22或更新. 安装 `@crvouga/mockingbird-fleet` 和模拟器软件包中的应用程序;条纹是可选的. 私人 `@crvouga/mockingbird-adapter-node` 执行是捆绑的,从未单独安装. 现有 `@crvouga/mockingbird-service-stripe/fleet` 进口仍由同样的API支持.

## 安装

```sh
npm install @crvouga/mockingbird-fleet @crvouga/mockingbird-service-postgres @crvouga/mockingbird-service-redis @crvouga/mockingbird-service-cognito
```

## 使用量

```ts
import { createInstalledServiceLoader, FleetClient, startFleet } from '@crvouga/mockingbird-fleet'

const fleet = await startFleet({ services: {
  database: { target: 'postgres', port: 0 },
  cache: { target: 'redis', port: 0 },
  identity: { target: 'cognito', port: 0 },
}}, { load: createInstalledServiceLoader({
  projectRoot: process.cwd(), services: ['postgres', 'redis', 'cognito'],
}) })
try {
  const client = new FleetClient(fleet.manifest.adminBase)
  await client.createNamespace('test')
} finally {
  await fleet.close()
}
```

解析器只允许从它们中添加已安装的服务后缀 `/server` 导出, 相对于明确的消费项目根(包括pnpm symlinks). 从来没有安装过 软件包。 使用不同实例名称 `target`。习惯 `load` 仍然支持调用.

```sh
mockingbird-fleet serve --config mockingbird.json --ready-json
mockingbird-fleet fleet doctor --config mockingbird.json --json
```

该套件出口类型为生命周期、客户端、档案、仓库、发现、迁移、, 参与者、连接提供和延长合同。 公开发现省略了证书; 将连接文件写入私有路径。 公共入侵支助是针对提供者的.

## 一个文件 : `mockingbird.yaml`

`serve --config` 使用 JSON 或 YAML 的舰队配置,或 `mockingbird.yaml` 声明:文件Fleet Cloud适用。 同样的文件然后运行你的机器上的舰队.

```yaml
version: 1
organization: acme
projects:
  web:
    fleets:
      acme-staging:
        services:
          stripe: { durability: strict }
          db: { target: postgres, protocol: postgres, port: 5432, local: true }
```

```sh
npx mockingbird-fleet serve --config mockingbird.yaml          # add --fleet <slug> when it declares several
MOCKINGBIRD_FLEET_URL=https://… MOCKINGBIRD_FLEET_TOKEN=… npx mockingbird-fleet plan
npx mockingbird-fleet apply            # --prune also deletes what the file no longer declares
```

只有舰队云读取的密钥`durability`, (中文(简体) ), `flushIntervalMs`, (中文(简体) ), `webhookOrigins`, (中文(简体) ), `local`,则a 车队 `access` 财务报告和审定财务报表 `requestsPerMinute`)在本地舰队开始前被放弃. `plan` 财务报告和审定财务报表 `apply` 带 `--file` (默认) `mockingbird.yaml`, (中文(简体) ), `--url`, (中文(简体) ), `--token-env` 财务报告和审定财务报表 `--json`。 。 。 .

## API 密码

`FleetClient`, (中文(简体) ), `FleetClientError`, (中文(简体) ), `FleetClientResponseError`, (中文(简体) ), `FleetInstrumentation`, (中文(简体) ), `FleetObservations`, (中文(简体) ), `FleetRunError`, (中文(简体) ), `NamespacePool`, (中文(简体) ), `RepositoryWriter`, (中文(简体) ), `advertisedHttpBase`, (中文(简体) ), `archiveCompatibility`, (中文(简体) ), `archiveProtector`, (中文(简体) ), `archiveReachability`, (中文(简体) ), `assertArchiveCompatibility`, (中文(简体) ), `assertFleetConfig`, (中文(简体) ), `compactArchive`, (中文(简体) ), `composeFleetSchema`, (中文(简体) ), `createFleetIngress`, (中文(简体) ), `createInstalledServiceLoader`, (中文(简体) ), `diffArchives`, (中文(简体) ), `doctorFleet`, (中文(简体) ), `fileParticipant`, (中文(简体) ), `filesystemConditionalStore`, (中文(简体) ), `filesystemOperationJournal`, (中文(简体) ), `filesystemRepository`, (中文(简体) ), `fleetCommands`, (中文(简体) ), `fleetConfigSchema`, (中文(简体) ), `incrementalArchive`, (中文(简体) ), `ingressSupport`, (中文(简体) ), `inspectArchive`, (中文(简体) ), `launchFleet`, (中文(简体) ), `listen`, (中文(简体) ), `materializeArchive`, (中文(简体) ), `migrateAndVerify`, (中文(简体) ), `migrateApplicationArchive`, (中文(简体) ), `migrateArchive`, (中文(简体) ), `ownedTransport`, (中文(简体) ), `participantConformance`, (中文(简体) ), `planRestoreBindings`, (中文(简体) ), `providerServeOptions`, (中文(简体) ), `providerServeValues`, (中文(简体) ), `publishIncremental`, (中文(简体) ), `readJsonOption`, (中文(简体) ), `rebaseArchiveNamespace`, (中文(简体) ), `reconcileOperation`, (中文(简体) ), `rehearseFleet`, (中文(简体) ), `renderConnections`, (中文(简体) ), `replayFleetTrace`, (中文(简体) ), `resolveServeControls`, (中文(简体) ), `resolveServeIdBase`, (中文(简体) ), `resolveServeSettings`, (中文(简体) ), `runCli`, (中文(简体) ), `s3ConditionalStore`, (中文(简体) ), `s3Repository`, (中文(简体) ), `serve`, (中文(简体) ), `serveCommand`, (中文(简体) ), `startFleet`, (中文(简体) ), `validateArchive`, (中文(简体) ), `validateFleetConfig`, (中文(简体) ), `withFleetRun`, (中文(简体) ), `writeConnections`。 。 。 .

`mockingbird.yaml` 声明: `parseDeclaration`, (中文(简体) ), `checkDeclaration`, (中文(简体) ), `DeclarationError`, (中文(简体) ), `isDeclaration`, (中文(简体) ), `declaredFleets`, (中文(简体) ), `localFleetConfig`, (中文(简体) ), `DURABILITY_MODES`, (中文(简体) ), `ACCESS_MODES`, (中文(简体) ), `CLOUD_SERVICE_KEYS`。 。 。 .

## 客户运输和私人环境

`FleetClient` 拒绝后续之前的每个 HTTP 重定向, 包括同源重定向 . 自定义 `fetch` 适配器必须尊重 `redirect: 'manual'` 和提供的中止信号;适配器 无法执行证书边界。 重定向错误曝光 只有状态/代码,绝不是位置。 代理错误保留 HTTP 状态为 `FleetClientError`; 错误 诊断器保持有界机器 `type`编号 :`code` 识别符和去掉原始体、信件和摘录. JSON 产量不合格 `FleetClientResponseError` 与 `code: 'invalid_json'`; 空关 回复成功 `undefined`。请求绝不自动重试突变.

解码响应默认为64 MiB字节限制. `maxResponseBytes` 客户端或 `request` 设定明确的限制,包括归档呼叫。 广告长度和流出块总数 选中; 超量注销主体 `code: 'response_too_large'`. 请求截止日期和 调用器中止信号通过解码一起应用.

`renderConnections` 接受 `{service, field?, fallback?}` 测绘. 现有 `{service}` 条目 仍然返回完整的 URL 。 字段为 `url`, (中文(简体) ), `hostname`, (中文(简体) ), `port`, (中文(简体) ), `username`, (中文(简体) ), `password`, (中文(简体) ), `pathname` 财务报告和审定财务报表 `database` (路径没有它的领先斜线)。 IPv6 主机名去掉 URL 括号; 证书和路径是 %-decode 的。 端口使用明确的 URL 端口; 没有服务默认值 被猜测。 缺少组件拒绝, 除非配置一个明确的字符串倒置, 包括 一个空字符串。 缺少协议命名空间 URL, 缺少服务, URL 错误和未知 字段拒绝整个渲染操作。 HTTP 命名空间路径模板仍然可用 构造 HTTP 命名空间 URL 。 只有私人货单上有证明. `writeConnections` 保留原子0600 JSON/dotenv输出; 绝不将私人输出作为发现或诊断发布.

## 应用程序归档兼容性

配置 `startFleet(..., {archiveCompatibility: {tags: {schema: 'v3', seed: 'baseline-a'}}})` 改为 在每个归档的 SHA-256 受保护元数据中包含应用程序标记,并要求相同的精确度 标记映射,然后恢复任何命名空间或整个环境。 此检查也适用于仓库 康复和康复 `rehearseFleet` (通过同样的政策)。 编解码器迁移仍然分开; 软件包 semver 绝不意味着应用程序的相容性.

未标记的后遗档案在有政策时拒绝,除非 `missing: 'allow'` 明确 批准遗留投入。 在没有政策的情况下,仍支持贴有标签和未加标记的档案。 标记是 调用器拥有的非秘密值:最多32个条目,1-64 ASCII 标识字符的密钥和 值为 1–256 个字符,没有控制字符。 不将证书放入标签 .

`assertArchiveCompatibility` 检查离线档案。 备选的第三项政策论点 `archiveCompatibility(input, registry, policy)` 在编解码器规划中添加相同的应用程序检查. `migrateApplicationArchive` 需要一个 明确的源政策,目的地标记和注册的变换回调,运行在克隆上, 并封存和验证新的档案;呼叫者可以使用 `migrateAndVerify`/存储器出版物 用于排练和出版。 来源始终不变。 期间没有隐性迁移 恢复,不匹配永远不会触发新的重置。 校验和检测腐败; 使用存档 \* 保护真实性/机密性,防止敌方能够替换整个档案.

## 核查

`packed.consumer.test.ts` 装入此软件包并选择 Postgres、 Redis、 Cognitto 和 SQLite 文物,安装在单体外 然后使用节点开始,发现,命名空间, 进出口这批人 它声称没有Frede和私人的帮助包。 这个 中立的CLI也从消费者项目之外行使,并解决安装的服务 从它的消费根。 运行 `bunx turbo run test --filter=@crvouga/mockingbird-fleet` 在一次离职中.

## 常见问题

### @crvouga/mockingbird-fleet 是什么？

销售商中立的机队生命周期,发现,档案和Mockingbird模拟器的控制客户端\.

### 如何安装 @crvouga/mockingbird-fleet？

在项目目录运行 npm install @crvouga/mockingbird-fleet，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mockingbird-fleet，可以用 npx mockingbird-fleet 直接运行。

### @crvouga/mockingbird-fleet 支持 TypeScript 吗？

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

### @crvouga/mockingbird-fleet 支持 ESM 还是 CommonJS？

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

### @crvouga/mockingbird-fleet 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @crvouga/mockingbird-fleet 可以商用吗？

@crvouga/mockingbird-fleet 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @crvouga/mockingbird-fleet 的下载量有多少？

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

### @crvouga/mockingbird-fleet 还在维护吗？

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

