# @clipboard-health/playwright-flake-linter 中文文档

规范地址：https://npmcn.com/package/%40clipboard-health/playwright-flake-linter/

版本：1\.4\.15
npm 元数据更新时间：2026-11-05T04:55:38.622Z
中文译文更新时间：2026-11-10T01:57:54.801Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40clipboard-health/playwright-flake-linter
原文对照：https://npmcn.com/package/%40clipboard-health/playwright-flake-linter/?lang=original
项目主页：https://github.com/ClipboardHealth/core-utils#readme
源码仓库：https://github.com/ClipboardHealth/core-utils

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

- 包体积（解压后）：70.5 kB，20 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2026-07-16T17:34:58.879Z
- 最新版本发布：2026-11-05T04:55:38.450Z
- 近 30 天下载量：11904（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：41（近 12 个月 41 个）

## 中文简介

共享Playwright Flake反拍手的可配置检查.

## 安装

```sh
npm install @clipboard-health/playwright-flake-linter
```

也可以使用：`pnpm add @clipboard-health/playwright-flake-linter`、`yarn add @clipboard-health/playwright-flake-linter`、`bun add @clipboard-health/playwright-flake-linter`

## README

# @clippboard-health/ playwright-flake-linter (英语)

共享,可配置的 TypeScript AST 检查 Playwright Flake 反帕特尔. 规则的执行就在这个一揽子计划中;消耗的储存库提供 只有他们的路径,助手名称,机制名称,以及合理的例外.

## 安装

```bash
npm install --save-dev @clipboard-health/playwright-flake-linter
```

TypeScript是一种运行时间依赖,因为检查器使用编译器API; `glob` 提供用于 `embedex`。 。 。 . 两者都得到积极维护,在商业上兼容(Apache-2.0和ISC), 已在此单列中标准化, 且 CLI 不包含在 应用程序捆绑.

## 配置

创建 `playwright-flake-lint.config.mjs` 在寄存器根处:

```javascript
export default {
  scanRoots: ["playwright"],
  hardenedIdentityHelperNames: ["generateRandomUserEmail"],
  identityHelperMinimumLengths: {
    generateRandomAlphaNumericString: 24,
    generateRandomString: 26,
  },
  retryHelperNames: ["retry"],
  specificRequestMatcherNames: ["isMatchingRequest"],
  transientClassifierNamePatterns: ["^isRetryable", "retryClassification"],
  undiscriminatingRetryHelperNames: ["retryUntilPassOrTimeout", "toPass"],
  sharedReadinessMechanisms: [
    {
      name: "Home Health response readiness",
      filePathPattern: "playwright/e2e/homeHealth/.*\\.spec\\.ts$",
      directCallNames: ["waitForResponse"],
      sharedHelperNames: ["waitForHomeHealthResponse"],
    },
  ],
};
```

移动寄存器可以在不更改规则的情况下使用自己的真名:

```javascript
export default {
  scanRoots: ["playwright"],
  identityHelperMinimumLengths: {
    mobileRandomSuffix: 32,
  },
  retryHelperNames: ["retryMobileAction"],
  specificRequestMatcherNames: ["matchesMobileRequest"],
  transientClassifierNamePatterns: ["^isTransientMobile"],
  sharedReadinessMechanisms: [
    {
      name: "BottomSheet readiness",
      filePathPattern: "playwright/e2e/sheets/.*\\.spec\\.ts$",
      directCallNames: ["waitForResponse"],
      sharedHelperNames: ["waitForBottomSheet"],
    },
  ],
};
```

所有模式字段都是JavaScript正则表达源字符串. 可选 配置 :

| 外地 | 目的 |
| --- | --- |
| `allowlist` | 按规则和文件模式分列的因故需要的存储处例外 |
| `hardenedIdentityHelperNames` | 无长度参数的安全身份助手 |
| `identityHelperMinimumLengths` | 仓库随机帮助名称及其安全最小长度 |
| `identityNamePattern` | 名称被视为对工人有敏感认识的平行身份 |
| `responseWaitCallNames` | 仓库响应等待工具名 |
| `retryHelperNames` | 重试必须分类瞬时故障的公用事业 |
| `sharedReadinessMechanisms` | 文件/机制登记向共享帮助者绘制直门图 |
| `specificRequestMatcherNames` | 指派完全歧视答复请求的助手 |
| `specFilePattern` | 应用固定睡眠检查的文件 |
| `transientClassifierNamePatterns` | 在重试中接受的分类名称 |
| `undiscriminatingRetryHelperNames` | 内在地重试任何失败并总是被拒绝的公用事业 |

`sharedReadinessMechanisms[].name` 是诊断标签,所以寄存器可以 使用本地术语,例如: `Dialog` 或者说 `BottomSheet`。 。 。 .

## 连接到 CI

将可执行文件添加到存储器的现有验证链 :

```json
{
  "scripts": {
    "architecture:check": "existing-checks && playwright-flake-lint"
  }
}
```

使用非默认位置配置 `playwright-flake-lint --config path/to/config.mjs`。 。 。 .

## 规则

| 规则ID | 反模式 | 所需替代品 |
| --- | --- | --- |
| `fixed-sleep` | `waitForTimeout` 或者说 `setTimeout` 字节中的延迟 | Rubric B2:使用确定性的准备状态信号 |
| `response-wait` | 状况/`.ok()` 没有具体请求数据的回复上游 | Rubric B2: 匹配方法、 URL 和歧视性请求上游 |
| `retry-classification` | 在不进行临时分类的情况下重试所援引的公用事业 | Rubric B1: 分类瞬间故障和快故障 否则 |
| `test-data-identity` | 硬化随机帮助者的低主动性身份或绕行 | Rubric A2: 使用配置的硬化或UUID后置身份 |
| `shared-readiness` | 存在共享机制帮助器的光谱准备状态门 | Rubric A1: 使用或扩展配置的共享帮助 |

## 允许列名

更喜欢解决违法问题 必须立即提出合理的内在例外 在作出违反规定的声明之前,说明理由:

```typescript
// flake-lint-allow fixed-sleep -- The timer fixture verifies elapsed product time.
await page.waitForTimeout(100);
```

存储器级别的例外也需要一个理由:

```javascript
export default {
  scanRoots: ["playwright"],
  allowlist: [
    {
      ruleId: "fixed-sleep",
      filePathPattern: "playwright/e2e/legacy/timer\\.spec\\.ts$",
      reason: "The timer fixture verifies elapsed product time.",
    },
  ],
};
```

没有非空理由的评论或配置条目不压制 违反.

## 未来共同规则

现有的每个存储器对话框/清点列表检查是这个选项的候选条件 软件包。 它们的组件名称差异( E)`Dialog` 管理和 `BottomSheet` 在移动中)属于该规则迁移时的寄存器配置; 此 软件包尚未更改这些检查.

## 常见问题

### @clipboard-health/playwright-flake-linter 是什么？

共享Playwright Flake反拍手的可配置检查\.

### 如何安装 @clipboard-health/playwright-flake-linter？

在项目目录运行 npm install @clipboard-health/playwright-flake-linter，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 playwright-flake-lint，可以用 npx playwright-flake-lint 直接运行。

### @clipboard-health/playwright-flake-linter 支持 TypeScript 吗？

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

### @clipboard-health/playwright-flake-linter 支持 ESM 还是 CommonJS？

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

### @clipboard-health/playwright-flake-linter 可以商用吗？

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

### @clipboard-health/playwright-flake-linter 的下载量有多少？

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

### @clipboard-health/playwright-flake-linter 还在维护吗？

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

