# @brighte/platform-core-utils 中文文档

规范地址：https://npmcn.com/package/%40brighte/platform-core-utils/

版本：0\.1\.0
npm 元数据更新时间：2026-03-31T05:21:48.514Z
中文译文更新时间：2026-11-08T15:28:35.514Z
软件包许可：UNLICENSED

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

原始 npm 页面：https://www.npmjs.com/package/%40brighte/platform-core-utils
原文对照：https://npmcn.com/package/%40brighte/platform-core-utils/?lang=original

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

- 包体积（解压后）：71.7 kB，60 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- peer 依赖：@pact-foundation/pact-node \>=10\.0\.0，vite-tsconfig-paths \>=4\.0\.0，vitest \>=1\.0\.0 \<2\.0\.0
- 首次发布：2026-03-26T05:47:23.482Z
- 最新版本发布：2026-03-31T05:21:48.399Z
- 近 30 天下载量：4076（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

Brighte平台团队共享内部公用事业包

## 安装

```sh
npm install @brighte/platform-core-utils
```

也可以使用：`pnpm add @brighte/platform-core-utils`、`yarn add @brighte/platform-core-utils`、`bun add @brighte/platform-core-utils`

## README

# @ brighte/ platform- core- utils

布莱特平台团队共享内部公用设施包.

这个软件包提供多个存储库中常见的可重复使用的辅助器和公用事业. 它被设计成递增增长——每个模块都是轻量级的,可以独立测试,并且与无关的依赖性隔离. 目前包括契约合同测试公用事业,计划采用更多的模块.

## 模块

| 模块 | 入境点 | 状态 | 说明 |
| --- | --- | --- | --- |
| `pact` | `@brighte/platform-core-utils` | 准备 | 契约消费者合同测试帮助者 |
| `pact/config` | `@brighte/platform-core-utils/config` | 准备 | 用于协议测试的虚拟配置工厂 |
| `pact/publish` | `@brighte/platform-core-utils/publish` | 准备 | 向经纪人发布契约的脚本助手 |

> 新模块进入 `src/<module>/` 并且从一个专用的子路径导出,如果它们具有不同的依赖性。 见 [克劳德·姆德](https://npmcn.com/package/%40brighte/platform-core-utils/CLAUDE.md) 捐款准则.

## 安装

```bash
npm install --save-dev @brighte/platform-core-utils
```

`@pact-foundation/pact`, (中文(简体) ), `graphql`,以及 `@graphql-typed-document-node/core` 作为依赖性自动安装.

为可选特性安装对等依赖 :

```bash
# For vitest config (createPactVitestConfig)
npm install --save-dev vitest vite-tsconfig-paths

# For publishing pacts (publishPacts)
npm install --save-dev @pact-foundation/pact-node
```

> **说明:** 发布到 npm `@brighte` 范围。 确保您的项目 `.npmrc` 以正确的认证符号配置.

* * *

## 契约模块

### 创建提供者

```typescript
import { createProvider } from '@brighte/platform-core-utils';

export const provider = createProvider({
  consumer: 'my-app',
  provider: 'api-service',
  logLevel: 'info', // optional, defaults to PACT_LOG_LEVEL env var or 'warn'
  dir: './generated-pacts', // optional, defaults to './generated-pacts'
});
```

### 构建图QL 互动

```typescript
import { createGraphqlQueryInteraction } from '@brighte/platform-core-utils';
import { MatchersV3 } from '@pact-foundation/pact';
import { someQuery } from './queries.graphql';

const interaction = createGraphqlQueryInteraction({
  state: 'user with id 123 exists',
  uponReceiving: 'a request for user data',
  query: someQuery,
  variables: { id: '123' },
  responseBody: {
    user: MatchersV3.like({ id: '123', name: 'John Doe' }),
  },
});
```

### 虚拟配置

```typescript
// pact/setup/config.ts
import tsconfigPaths from 'vite-tsconfig-paths';
import { defineConfig } from 'vitest/config';
import { createPactVitestConfig } from '@brighte/platform-core-utils/config';

export default defineConfig({ ...createPactVitestConfig(), plugins: [tsconfigPaths()] });
```

### 出版条约

```typescript
// pact/setup/publish.pact.ts
import { publishPacts } from '@brighte/platform-core-utils/publish';

await publishPacts();
```

### CI 部署检查

```typescript
// pact/setup/can-i-deploy.ts
import { canIDeploy } from '@brighte/platform-core-utils';

const environment = process.env['ENVIRONMENT'];
if (!environment) { console.error('ENVIRONMENT is not set'); process.exit(1); }
canIDeploy({ pacticipant: 'my-app', toEnvironment: environment });
```

```typescript
// pact/setup/record-deployment.ts
import { recordDeployment } from '@brighte/platform-core-utils';

const environment = process.env['ENVIRONMENT'];
if (!environment) { console.error('ENVIRONMENT is not set'); process.exit(1); }
recordDeployment({ pacticipant: 'my-app', environment });
```

完整的契约设置指南见 [文件/邮编](https://npmcn.com/package/%40brighte/platform-core-utils/docs/pact.md)。 。 。 .

* * *

## 发展

```bash
npm install       # install deps
npm run build     # compile CJS + ESM to dist/
npm run lint      # eslint
npm test          # vitest
npm run clean     # remove dist/
```

* * *

## 版本和发行

此软件包使用 **语义版本**。每次合并到 npm 时自动发布到 npm `main`。 。 。 .

1.  弹出 `package.json` 版本(例如:. `1.0.0` → `1.1.0`(中文(简体) )
2.  更新 `CHANGELOG.md`
3.  提交并打开 PR 对 `main`
4.  一旦合并, `publish.yml` 运行并发布到 npm

> 如果该版本在 `package.json` 未更改, 发布步骤会跳过( 没有重出已存在的版本 ) .

### 出版工作流程

| 工作流程 | 触发 | 目的 |
| --- | --- | --- |
| `ci.yml` | 将/ PR 推到 `main` | 建置、用意、测试、循环解析检查 |
| `publish.yml` | 合并到 `main` | 发布稳定释放到 npm |
| `beta.yml` | 手动发送 | 发布 `beta` 调值 |

## 常见问题

### @brighte/platform-core-utils 是什么？

Brighte平台团队共享内部公用事业包

### 如何安装 @brighte/platform-core-utils？

在项目目录运行 npm install @brighte/platform-core-utils，或使用 pnpm add / yarn add / bun add。

### @brighte/platform-core-utils 支持 TypeScript 吗？

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

### @brighte/platform-core-utils 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @brighte/platform-core-utils 可以商用吗？

@brighte/platform-core-utils 使用 UNLICENSED 许可。作者声明为 UNLICENSED，即不授予公开使用许可（与公共领域的 Unlicense 不同）。使用前需获得作者授权。以上为概括，不构成法律意见，请以许可原文为准。

### @brighte/platform-core-utils 的下载量有多少？

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

### @brighte/platform-core-utils 还在维护吗？

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

