@brad-frost-web/eddie-reporter

中文文档
0.73.0发布于 2026/11/04MITTypeScriptES Module零依赖近 30 天下载 1693

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

中文使用文档
文档目录11 节
  1. 为什么会这样
  2. 设计原则
  3. 安装使用( U)
  4. 按计划运行
  5. 国 际
  6. 构建生活在源头旁的产出
  7. bfw-进程规则书
  8. 程序化 API
  9. 报告看起来像什么
  10. 一个产品自己的 ed-* 元素不是Eddie的用法
  11. 更大的画面

@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数字 :

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

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

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

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

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

按计划运行

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

  • 产品方面. 复制 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个 明确命名此类文件 :

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 并不是,因为一个文件站点上的根标记可以真正使用。 正如工作流程模板所做的那样,明确将其推出:
eddie-report --event ci --ignore AGENTS.md --ignore CLAUDE.md --ignore SPEC.md

程序化 API

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 });

报告看起来像什么

{
  "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号) (中文(简体) ).

记者现在运送了目录的快照(图)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 整个地图上 使用加权健康、去色雷达、漂流道、公共收养 仪表板,关闭循环回治理.

版本与发布记录

@brad-frost-web/eddie-reporter 共发布 39 个版本,首次发布于 2026/07/21;过去 12 个月发布了 39 个版本。

版本发布日期距今
0.73.0latest2026/11/045 天前
0.72.12026/10/2713 天前
0.72.02026/10/2614 天前
0.71.02026/10/2020 天前
0.70.02026/10/011 个月前
0.69.02026/10/011 个月前

关于 @brad-frost-web/eddie-reporter 的常见问题

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