@clipboard-health/playwright-flake-linter

中文文档
1.4.15发布于 2026/11/05MITTypeScriptCommonJS近 30 天下载 1.2万

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

中文使用文档
文档目录6 节
  1. 安装
  2. 配置
  3. 连接到 CI
  4. 规则
  5. 允许列名
  6. 未来共同规则

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

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

安装

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

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

配置

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

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"],
    },
  ],
};

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

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

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

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

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

规则

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

允许列名

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

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

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

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 共发布 41 个版本,首次发布于 2026/07/17;过去 12 个月发布了 41 个版本。

版本发布日期距今
1.4.15latest2026/11/054 天前
1.4.142026/11/055 天前
1.4.132026/11/045 天前
1.4.122026/10/3110 天前
1.4.112026/10/2812 天前
1.4.102026/10/2813 天前

关于 @clipboard-health/playwright-flake-linter 的常见问题

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