# @codefresh-io/eventbus 中文文档

规范地址：https://npmcn.com/package/%40codefresh-io/eventbus/

版本：4\.0\.3
npm 元数据更新时间：2026-11-04T10:45:58.374Z
中文译文更新时间：2026-11-10T07:54:05.673Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40codefresh-io/eventbus
原文对照：https://npmcn.com/package/%40codefresh-io/eventbus/?lang=original
项目主页：https://github.com/codefresh-io/cf-eventbus#readme
源码仓库：https://github.com/codefresh-io/cf-eventbus

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

- 包体积（解压后）：32.9 kB，8 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=24
- 运行依赖：4 个
- peer 依赖：@codefresh-io/cf-telemetry ^4\.0\.0
- 首次发布：2017-03-11T23:52:45.023Z
- 最新版本发布：2026-11-04T10:45:58.201Z
- 近 30 天下载量：2265（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：55（近 12 个月 10 个）

## 中文简介



## 安装

```sh
npm install @codefresh-io/eventbus
```

也可以使用：`pnpm add @codefresh-io/eventbus`、`yarn add @codefresh-io/eventbus`、`bun add @codefresh-io/eventbus`

## README

## 参考事件概要

```TS
const eventbus = require('cf-eventbus');

eventbus.init({
    bus: {
        url: 'amqp://codefresh.dev', // rabbitmq server
        reconnectInterval: 5
    },
    store: {
        host: 'codefresh.dev', // postgres host
        database: 'postgres', // postgres database
        user: 'postgres', // postgres user
        password: 'postgres' // postgres password
    },
    microServiceName: 'service-name' // client name
});
```

## 伟大的关闭

`quit()` 通过取消所有消费者,等待所有进行中的消费者完成,然后关闭连接,可以使用方法来优雅地终止总线连接. 不想要的话就用吧 `quit({ force: true })` 立即终止连接.

```TS
const eventbus = require('cf-eventbus');

process.on('SIGTERM', async () => {
    try {
        await eventbus.quit();
        // ...
    } catch (err) {
        // ...
    }
});
```

可能需要在所有消费者取消后和连接关闭前进行一些额外的清理. 在这种情况下,使用下列模式:

```TS
const eventbus = require('cf-eventbus');

process.on('SIGTERM', async () => {
    try {
        await eventbus.cancelAllConsumers();
        await eventbus.waitForConsumersToFinish();
        // perform additional cleanup here, such as waiting for HTTP requests to finish
        await eventbus.quit();
        // ...
    } catch (err) {
        // ...
    }
});
```

## 进行整合测试

通过Docker 编译、运行,在RabbitMQ和PostgreSQL上启动集成测试 `test/integration.js` 然后把容器关了 Docker (带 `docker compose` 插件)必须是在本地运行 .

```sh
yarn install
```

```sh
yarn test-integration
```

## 常见问题

### 如何安装 @codefresh-io/eventbus？

在项目目录运行 npm install @codefresh-io/eventbus，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@codefresh-io/cf-telemetry（^4\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @codefresh-io/eventbus 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/codefresh-io\_\_eventbus 是否存在。

### @codefresh-io/eventbus 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @codefresh-io/eventbus 需要什么版本的 Node\.js？

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

### @codefresh-io/eventbus 可以商用吗？

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

### @codefresh-io/eventbus 的下载量有多少？

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

### @codefresh-io/eventbus 还在维护吗？

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

