# @decocms/parity 中文文档

规范地址：https://npmcn.com/package/%40decocms/parity/

版本：0\.35\.18
npm 元数据更新时间：2026-11-06T10:29:12.255Z
中文译文更新时间：2026-11-11T19:41:06.689Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：5 MB，9 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20
- 运行依赖：15 个
- 首次发布：2026-05-14T19:50:25.364Z
- 最新版本发布：2026-11-06T10:29:12.063Z
- 近 30 天下载量：4926（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：186（近 12 个月 186 个）

## 中文简介

E2E对站点迁移的等同验证器. 将prod vs cand 比较并报告 UI,功能,SEO,视觉,以及Web Vitals deltas 与排名为HTML的报告.

## 安装

```sh
npm install @decocms/parity
```

也可以使用：`pnpm add @decocms/parity`、`yarn add @decocms/parity`、`bun add @decocms/parity`

## README

# @ decocms/ 均等

> **连接到关闭迁移、公关和没有关键路径的事故的代理基础设施.**

`parity` 是一个在两个URL之间进行深度比较测试的CLI—— `prod` (真相来源)和 `cand` (缩放版本、PR预览或中放)——并制作:

-   一个独立的 **HTML 报告** 供人类在30秒内扫描
-   一个正常化 **JSON投影** (单位:千美元)`parity report --section <name> --json`代理可以消费而不解析 HTML
-   A 类 **JSONL 流线** (单位:千美元)`--json`)每个检查结果在完成后流出
-   A 类 **公关评论** (单位:千美元)`parity pr --prod ... --preview ...`准备投入CI/CD管道

它检查UI,功能,SIO,性能,控制台,网络,以及缓存回归. 最初是为Fresh → TanStack Start 迁移德克商店前行而建造的,但支票是通用的,足以用于任何并肩迁移.

> **状态 :** 阿尔法。 API和报告布局仍然可能改变.

## 为何存在对等性

迁移,公关审查,事件分解都共享相同的工作流程:取出两个版本的网站,找到不同之处,加以修复. 手动操作很慢而且容易出错;旋转一个LLM代理来完成它需要一个代理可以驱动的工具. `parity` 是那个工具.

三个使用案例驱动设计:

1.  **协助移徙** (Fresh → TanStack, Shopify → Hydrogen等)——一种物剂运行 `parity run` 在迁移的分支 每一个承诺, 选择顶级问题, 修正它,运行再次。 HTML报告+可视-diff快取被设计成可粘贴到克洛德/ChatGPT.
2.  **CI/CD PR审查** —— 说 `parity pr --prod ... --preview ...` a Markdown 注释,附有判决、最高问题和与报告全文的链接。 丢入工作流程中 `gh pr comment -F` 或者说 `actions/github-script`。 。 。 .
3.  **连续烟雾** —— 说 `parity run --preset smoke` 完成于~30s,运行无 LLM. 每次部署后,都够便宜了.

## 快速启动

```bash
# Install — auto-installs Playwright Chromium on postinstall (~140 MB, one-time)
npm install -g @decocms/parity
# or run without install
npx @decocms/parity run --prod ... --cand ...

# In CI / behind a corp proxy? Skip the auto-install and do it later:
# PARITY_SKIP_PLAYWRIGHT_INSTALL=1 npm install -g @decocms/parity
# npx playwright install chromium

# First-time smoke run (~30s, no LLM needed)
parity run --prod https://oldsite.com --cand https://newsite.example.dev --preset smoke --open

# Full audit with visual diff
ANTHROPIC_API_KEY=sk-... parity run \
  --prod https://oldsite.com \
  --cand https://newsite.example.dev \
  --preset full --open

# CI/CD PR comment
parity pr --prod https://oldsite.com --preview https://pr-123-preview.example.dev --github
```

## 代理合同

代理驾驶员 `parity` 在循环中,稳定的表面是:

| 需求 | 命令 | 产出 |
| --- | --- | --- |
| 进行完整的比较 | `parity run --prod X --cand Y --json runs.jsonl` | JSON-Lines,每检查一行 |
| 从保存的运行中提取一个标签 | `parity report <runId> --section <name>` | HTML 切片 |
| 提取一个标签为结构化的 JSON | `parity report <runId> --section <name> --json` | JSON投影 |
| 驱动CI/CD管道 | `parity pr --prod X --preview Y --github` | 标记下注释 + `$GITHUB_STEP_SUMMARY` |
| 钻入一个问题 | `parity explain <runId> <issueId>` | LLM 深潜 (需要密钥) |
| 构建一个可粘贴的提示 | `parity prompt <runId>` | 为克洛德/查特GPT准备了Markdown |
| 生成可视化补丁捆绑 | `parity section --all --prod X --cand Y --selector S` | 标记下 + 截图 + 计算式 diff |

见 [`docs/cli.md`](https://npmcn.com/package/%40decocms/parity/docs/cli.md) 每个命令, [`docs/checks.md`](https://npmcn.com/package/%40decocms/parity/docs/checks.md) 每张支票. 见 [`docs/reports.md`](https://npmcn.com/package/%40decocms/parity/docs/reports.md) 用于 HTML 输出和两个报告模板包.

## LLM 提供者

三家供应商,按此顺序自动检测—— **无需** 如果你拥有 `claude` 在本地登录的CLI :

1.  `ANTHROPIC_API_KEY` ——直接Anthropic API(快速,开入您的API账户)
2.  `OPENROUTER_API_KEY` ——开放路透社
3.  **当地 `claude` 国 际** - 用途 [`@anthropic-ai/claude-agent-sdk`](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk)检查一下你的克劳德计划 不需要护卫

强制使用 `--llm <anthropic|openrouter|claude-code|none|auto>`覆盖每个地貌 `--llm-model visual-diff=claude-opus-5,explain=claude-opus-5`,或者将每层都平整到一层 `--llm-tier-default <haiku|sonnet|opus>`。默认分级: **声纳** 用于选择发现/恢复/匹配/视觉(结构-理性呼叫), **海库** 简短的复制清单分类(`search-terms`, (中文(简体) ), **奥普斯 Opus** 页:1 `explain`成本意识? 尝试 `--llm-tier-default haiku` 并有选择地将特性重回Sonnet, 如果你击中选择器错过.

没有任何提供者,CLI仍然运行并输出原始检查结果.

## 产出

```
./parity-output/runs/<runId>/
├── report.json       # structured output for agents / CI / tooling
├── report.html       # only with --html/--open, or rendered later by `parity report <runId>`;
│                     # links to screenshots/ by relative path — keep the two together
├── screenshots/      # per-page, per-viewport, per-side; includes pixelmatch heatmaps
├── har/              # Playwright HARs, one per viewport/side — only with PARITY_HAR=1
└── traces/           # Playwright traces (drag into trace.playwright.dev) — only with PARITY_TRACE=1
```

## 预设

-   `--preset smoke` ——只有主页,只有移动,没有LLM,没有额外的爬行. ~30岁. 用"管子开通了吗?".
-   `--preset full` ——购买行程,移动+桌面,5个可视diff页面,10个要害页面. 用于放行.
-   `--preset ci` ——以移动,更小的爬行方式购买行程(3个视觉+5个生命体. 训练CI运行时间.

单个旗帜总是覆盖预设. 见 `parity run --help` 完全默认行为崩溃.

### 关于Web 生命号的说明

以默认的等同措施TTFB/FCP/LCP与浏览器的HTTP缓存启用,在温暖的连接上——一种"重复访问"的情景. 相形之下,灯塔和CrUX的现场数据模拟/测量了第一次的寒冷访问(cache已禁用). 也不是错的,但他们回答了不同的问题,所以不要将等值的默认活性指数1:1比作"灯塔"或"CRUX". 过 `--bypass-cache` 以近似于冷访问测量(除了绕过 CDN/ edge 缓存之外,还使浏览器通过 CDP 缓存失效) .

## CI 使用( GitHub 动作)

```yaml
- name: Parity check
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
  run: |
    npx @decocms/parity pr \
      --prod ${{ vars.PROD_URL }} \
      --preview ${{ env.PR_PREVIEW_URL }} \
      --github
```

这个 `--github` 旗子将马克下写到 `$GITHUB_STEP_SUMMARY` 所以它出现在工作流程摘要之下。 并发表公关评论:

```yaml
    npx @decocms/parity pr ... --out parity-comment.md
- uses: actions/github-script@v7
  with:
    script: |
      const fs = require('fs');
      const body = fs.readFileSync('parity-comment.md', 'utf8');
      github.rest.issues.createComment({
        ...context.repo,
        issue_number: context.issue.number,
        body,
      });
```

## 配置( 可选)

`.parityrc.json` 在工程根上——选择器覆盖并运行默认值。 见 [`docs/config.md`](https://npmcn.com/package/%40decocms/parity/docs/config.md) 整个计划.

```json
{
  "cep": "01310-100",
  "selectors": {
    "categoryLink": "header a[href*='/c/']",
    "productCard": "[data-product-card] a",
    "buyButton": "button:has-text('Comprar')"
  },
  "search": { "terms": ["camisa", "promocao"] }
}
```

`.parityignore` ——噪声抑制. 见 `docs/config.md`。 。 。 .

> **全权证书从未从 `.parityrc.json`。 。 。 .** 设定 `PARITY_LOGIN_EMAIL` 财务报告和审定财务报表 `PARITY_LOGIN_PASSWORD` 作为环境变量.

## 发展

```bash
git clone git@github.com:decocms/parity.git
cd parity
bun install
bunx playwright install chromium
bun run dev run --prod ... --cand ...
```

测试 : `bun run test` (vitest) (英语). 类型检查 : `bun run check`。构建: `bun run build`。 。 。 .

## 许可证

麻省理工学院

## 常见问题

### @decocms/parity 是什么？

E2E对站点迁移的等同验证器\. 将prod vs cand 比较并报告 UI,功能,SEO,视觉,以及Web Vitals deltas 与排名为HTML的报告\.

### 如何安装 @decocms/parity？

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

### @decocms/parity 支持 TypeScript 吗？

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

### @decocms/parity 支持 ESM 还是 CommonJS？

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

### @decocms/parity 需要什么版本的 Node\.js？

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

### @decocms/parity 可以商用吗？

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

### @decocms/parity 的下载量有多少？

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

### @decocms/parity 还在维护吗？

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

