# @brad-frost-web/eddie-reporter 中文文档

规范地址：https://npmcn.com/package/%40brad-frost-web/eddie-reporter/

版本：0\.73\.0
npm 元数据更新时间：2026-11-04T03:07:41.118Z
中文译文更新时间：2026-11-10T00:30:03.405Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40brad-frost-web/eddie-reporter
原文对照：https://npmcn.com/package/%40brad-frost-web/eddie-reporter/?lang=original
项目主页：https://github.com/Brad-Frost-Web/eddie-design-system#readme
源码仓库：https://github.com/Brad-Frost-Web/eddie-design-system

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

- 包体积（解压后）：95.1 kB，44 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-07-20T19:49:50.193Z
- 最新版本发布：2026-11-04T03:07:40.919Z
- 近 30 天下载量：1693（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：39（近 12 个月 39 个）

## 中文简介

Eddie-reporter——一个安装在下游Eddie产品上的零依赖性用法报道员. 它静静地扫描一个产品,用于埃迪的资产使用(组件,食谱,页面,信使),并将活动报告给埃迪的"大脑",所以收养和活动

## 安装

```sh
npm install @brad-frost-web/eddie-reporter
```

也可以使用：`pnpm add @brad-frost-web/eddie-reporter`、`yarn add @brad-frost-web/eddie-reporter`、`bun add @brad-frost-web/eddie-reporter`

## README

# @brad-frost-web/eddie-reporter (英语)

> 这个 **艾迪记者** ——您安装的零依赖用量记录器 下游的埃迪产品。 它静态扫描一个产品 埃迪资产 使用(组件、食谱、页面模板和设计符号)和报告 活动回到 **埃迪的大脑**因此,通过和活动 设计系统变成了活的 呼吸的反馈循环而不是 点入时猜.

## 为什么会这样

埃迪的大脑已经知道 **覆盖范围** (系统提供的内容)和通过 粗口收养扫描仪 **收养** (哪个组织重新拥有) _声明_ 一个艾迪 依赖情况 `package.json`) (中文(简体) ). 它看不见的是 **活动**数字 : _哪个_ 产品实际使用的资产, _有多严重_,以及 _当它最后一次改变_。 。 。 .

记者把缺口拉近了 它把"16再投靠艾迪"变成"这些 产品使用量 `ed-card` 240次,没人碰过 `ed-r-legacy-banner` 在90个 天数,以及 `ed-p-app-dashboard` 这是本季度最有助的模板". 那个 信号流进入 `.eddie-brain/activity.json` 穿过这里 `eddie_get_activity` MCP工具.

## 设计原则

-   **零从属.** 只有节点内置。 即时安装并添加无 供应链表面与它所运送的产品.
-   **静态并只读 .** 它读取源文本并计算引用. 从来没有 执行产品,从不读取运行时间/用户数据,从不修改 主持人。 报告具有决定性和隐私性.
-   **永远不要破坏一个建筑.** 失败的信标会被登录,而不是被抛出. CLI 输出 `0` 即便交货失败.
-   **优雅地贬低.** 如果没有网络(或者你不希望遥测), 它写一个本地的艺术品,你的CI可以 执行—— 大脑的肿瘤扫描或一个 人类以后可以捡起它.

## 安装使用( U)

运行时没有安装通过 `npx`数字 :

```bash
npx @brad-frost-web/eddie-reporter --event build \
  --endpoint https://ds.bradfrost.com/report
```

或者把它加成一个 dev 依赖性,并把它接入一个构建/后建脚本:

```jsonc
// package.json
{
  "scripts": {
    "postbuild": "eddie-report --event build"
  }
}
```

一次通过嵌入设置结束点, 脚本保持干净 :

```bash
export EDDIE_REPORT_ENDPOINT="https://ds.bradfrost.com/report"
export EDDIE_REPORT_TOKEN="…"   # optional
```

### 按计划运行

环路的设计是运行无人注意,两端是:

-   **产品方面.** 复制 [`templates/eddie-report.yml`](https://npmcn.com/package/%40brad-frost-web/eddie-reporter/templates/eddie-report.yml) 你的产品 `.github/workflows/` 设置 `EDDIE_REPORT_ENDPOINT` 暗号 它的灯塔 **每周一次** (单位:千美元)`cron`),每张 **推动** 改为 `main`编号 :`develop`, (中文(简体) ), 随叫随到 部署在其他地方的产品可使用Netlify/Vercel 已排定的函数, a `postbuild`编号 :`postdeploy` 钩子,或者普通的服务器克龙.
-   **系统侧.** 主办单位 `POST /report` 持续捕捉每个终点 netlify Blobs商店中的信标(无服务器文件系统为ephemeral). 这个 预定时间 `eddie-activity` eddie-design-system中的工作流程然后冲出 存储到 `.eddie-brain/activity.json` (单位:千美元)`eddie-brain activity flush`, (中文(简体) ), 刷新领养,并打开公关——所以分类账保持零活性 手动步骤.

## 国 际

```
eddie-report [dir] [options]

  --endpoint <url>   Brain ingestion URL (env: EDDIE_REPORT_ENDPOINT)
  --token <token>    Bearer token (env: EDDIE_REPORT_TOKEN)
  --event <name>     build | deploy | install | ci | dev | manual  (default: manual)
  --out <path>       Local artifact path (default: .eddie/usage-report.json; '' to skip)
  --ignore <path>    Skip a file or directory, relative to dir (repeatable)
  --ignore-dir <n>   Skip every directory named <n>, anywhere in the tree (repeatable)
  --dry-run          Scan and print, but don't POST or write
  --json             Print the full report JSON to stdout
  --quiet            Suppress the human summary
```

### 构建生活在源头旁的产出

扫描器已经跳过通常的输出目录( E)`dist`, (中文(简体) ), `_site`, (中文(简体) ), `.output`(中文(简体) ). 无法分辨文件 _内部_ 生成源目录。 承诺 `css/styles.css` 从 `css/*.scss` 里面写着埃迪的整张证物表 所以一个使用20多个证物的网站报道了600个 明确命名此类文件 :

```bash
eddie-report --event ci --ignore css/styles.css --ignore css/styles.tmp.css
```

API 上存在的选项与 `ignorePaths` (路径相对于被扫描的目录;一个目录跳过它的子树). 匹配是大小写敏感;接受扫描目录内一个绝对路径,外部一个永远不匹配. 缺少或旗形的值(`--ignore --dry-run`)是用法错误和出处 2.

### bfw-进程规则书

Bfw-process产品带有一条规则书,其中引用了 Eddie 标记和符号名称作为 _规则实例_. 算作用法,它将一种只提及它的产品(# 1861) 的食谱或标志记入其中.

-   `.bfw-process/` 财务报告和审定财务报表 `.microagents/` 从不扫描:扫描仪跳过每个点目录.
-   `AGENTS.md`, (中文(简体) ), `CLAUDE.md` 财务报告和审定财务报表 `SPEC.md` 并不是,因为一个文件站点上的根标记可以真正使用。 正如工作流程模板所做的那样,明确将其推出:

```bash
eddie-report --event ci --ignore AGENTS.md --ignore CLAUDE.md --ignore SPEC.md
```

## 程序化 API

```ts
import { buildReport, sendReport } from '@brad-frost-web/eddie-reporter';

const report = buildReport({ dir: process.cwd(), event: 'build' });
await sendReport(report, { endpoint: process.env.EDDIE_REPORT_ENDPOINT });
```

## 报告看起来像什么

```jsonc
{
  "schema": "eddie-usage-report/1",
  "reporterVersion": "0.62.1",
  "generatedAt": "2026-07-14T00:00:00.000Z",
  "event": "build",
  "product": {
    "id": "bradfrost.com",
    "repo": "Brad-Frost-Web/bradfrost.com",
    "branch": "main",
    "commit": "a1b2c3d…",
    "environment": "ci"
  },
  "eddie": {
    "declared": { "@brad-frost-web/eddie-web-components": "^0.37.0" },
    "packages": ["design-tokens", "web-components"]
  },
  "usage": {
    "components": { "ed-card": 24, "ed-button": 18 },
    "recipes": { "ed-r-site-header": 1 },
    "pages": { "ed-p-app-dashboard": 1 },
    "tokens": { "--ed-theme-color-content-default": 63 },
    "unknownPrefixed": { "ed-slide": 12 },
    "filesScanned": 210,
    "filesMatched": 47
  },
  "totals": { "distinctComponents": 2, "distinctRecipes": 1, "distinctPages": 1, "distinctTokens": 1, "occurrences": 107, "distinctUnknownPrefixed": 1 }
}
```

### 一个产品自己的 `ed-*` 元素不是Eddie的用法

这个 `ed-` 前缀意为"在艾迪的目录". 定义自己产品 它下面的自定义元素—— Eddie Slips 运出 14, `ed-slide`, (中文(简体) ), `ed-robot`, (中文(简体) ), `ed-r-site-frame` 在他们之中,他们曾经被算作艾迪 大脑无法从真实事物中得知 (单位:千美元)[2192号](https://github.com/Brad-Frost-Web/eddie-design-system/issues/2192)) (中文(简体) ).

记者现在运送了目录的快照(图)`dist/known-tags.json`, (中文(简体) ), 由大脑的图中生成的埃迪发行版 (已公布) 一个 `ed-*` 编号 : `ed-r-*` 编号 : `ed-p-*` 标记到外面 `usage.unknownPrefixed` 而不是一个使用桶,算作零艾迪使用, 被丢弃 `totals.occurrences`大脑会浮出水桶 产品卷起和进入 `eddie_get_activity`是因为 `unrecognised` 数据,和 `eddie_validate_file` 在源代码的同一标签上发出警告.

两个读取一个条目, 和每个的固定: 它是产品的要素, 所以,给它自己的前缀`es-` 艾迪·斯利普(英语:Eddie Slips))——或者说是 Eddie的和比安装的记者更新,所以更新记者. A 类 自有目录可当作 `knownTags` 改为 `scanUsage` 编号 : `buildReport`; 一个从源头运行而未建立快照的记者省略 大脑的分化 由自己的目录报告.

## 更大的画面

这位记者是双向系统-产品关系的第一个环节. 见 [`docs/VISION.md`](https://npmcn.com/package/%40brad-frost-web/eddie-reporter/docs/VISION.md) 整个地图上 使用加权健康、去色雷达、漂流道、公共收养 仪表板,关闭循环回治理.

## 常见问题

### @brad-frost-web/eddie-reporter 是什么？

Eddie-reporter——一个安装在下游Eddie产品上的零依赖性用法报道员\. 它静静地扫描一个产品,用于埃迪的资产使用\(组件,食谱,页面,信使\),并将活动报告给埃迪的"大脑",所以收养和活动

### 如何安装 @brad-frost-web/eddie-reporter？

在项目目录运行 npm install @brad-frost-web/eddie-reporter，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 eddie-report，可以用 npx eddie-report 直接运行。

### @brad-frost-web/eddie-reporter 支持 TypeScript 吗？

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

### @brad-frost-web/eddie-reporter 支持 ESM 还是 CommonJS？

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

### @brad-frost-web/eddie-reporter 可以商用吗？

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

### @brad-frost-web/eddie-reporter 的下载量有多少？

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

### @brad-frost-web/eddie-reporter 还在维护吗？

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

