@alxwlw/repo-rules

中文文档
1.9.2发布于 2026/11/04MITES Module零依赖构建来源已验证近 30 天下载 2462

从alxwlw缺陷检查官身上得到的全repo规则——长的文件,不合理的压制,跳出/聚焦测试,(x)QQ,去掉的断言——只有收缩基线.

中文使用文档
文档目录5 节
  1. 规则
  2. 基线
  3. 配置
  4. 限制
  5. 中情局

@alxwlw/repo规则

从一个缺陷检查中得出的全库检查:每个缺陷都是一类缺陷,已经花费了一轮审查。 他们在CI和本地运行,在20号节点运行,没有依赖性.

pnpm add -D @alxwlw/repo-rules
pnpm exec repo-rules baseline --init   # once: record what is already there
pnpm exec repo-rules check             # every run: nothing new, nothing stale
pnpm exec repo-rules diff --base origin/main
repo-rules [-C <dir>] check [--json]
repo-rules [-C <dir>] diff [--base <ref>] [--json]
repo-rules [-C <dir>] baseline [--init] [--allow-grow]

-C <dir> 运行在目录中(存储库内的任何位置). --json 指纹 { violations, stale, notes } 而不是文本行. --help 打印用法; 缺少或未知的命令打印到 stderr 和 出道 2 上.

规则

规则旗帜
max-lines一个800行以上的跟踪文本文件(计划、锁文件、JSON、快照、生成和销售文件除外)
suppression-reasoneslint-disable* 编号 : oxlint-disable* 编号 : solhint-disable* 无 -- reason· ; @ts-expect-error 编号 : @ts-ignore 而不附带文字; biome-ignore 后面没有文本 :; 蟒蛇 # noqa 编号 : # type: ignore 无 -- reason
focused-skipped-tests在JS/TS测试文件中: .only( 在任意一行上(扫描以行为主,见"限制"); .skip( 编号 : .todo( 编号 : xit( 编号 : xdescribe( 编号 : xtest( 无 -- reason 上行或上行评论. .skipIf 编号 : .runIf 和剧作家 test.skip(condition, reason) 没事
number-or-default在未测试的JS/TS文件中: Number(…), (中文(简体) ), Number.parseInt(…), (中文(简体) ), Number.parseFloat(…), (中文(简体) ), parseInt(…), (中文(简体) ), parseFloat(…) 接下来是 || <non-zero literal>: 一个真实的 0 默默成为默认值
removed-assertions (单位:千美元)diff(中文(简体) )测试文件, diff 删除更多 expect( 编号 : assert… (c) 评论中的断言既不被删除也不被添加(评论确认: //, (中文(简体) ), /* … */ 在线上,一条线从 *· ; # 在 Python; 未关闭 /* 和从 * 隐藏该行的其余部分,包括后面的代码 */) (中文(简体) ). exclude (单位:千美元)* 或者说 removed-assertions适用。 A 类 Tests-Removed: <reason> 在射程内装拖车

原因至少有三个非空格字符.

基线

.repo-rules-baseline.json 记录已经存在的违规情况:每长文件行数,为其他规则按每个文件计数. check 当一个文件翻过其条目时失败, 以及当一个条目高于现实( stale)时, 因此一个固定位置不能被新位置重用 . baseline 只降低条目; 提高一个需要 --allow-grow显示在 PR diff 中.

配置

可选 .repo-rules.json数字 :

{
    "maxLines": 800,
    "exclude": { "*": ["public/vendor/**"], "max-lines": ["docs/*.html"] },
    "testGlobs": [
        "**/*.{test,spec}.*",
        "**/__tests__/**",
        "**/test/**",
        "**/tests/**",
        "**/*.t.sol",
        "**/test_*.py",
        "**/*_test.py"
    ]
}

testGlobs 替换上面全部显示的默认列表;不添加. exclude 带 * 或规则名称——上述四项规则和 removed-assertions。 。 。 .

限制

  • 评论由一行heuristic,而不是一行解析器找到:regex文字或JSX文本中的引文可以在后一行隐藏指令.
  • <!-- --> 注释 .vue 财务报告和审定财务报表 .svelte 文件不读取.
  • number-or-default 错过 || .5,则a ||= 默认应用到持有一个变量的变量 Number(…) 结果.
  • removed-assertions 不看到一个没有内容更改的重命名所禁用的测试( 例如) a.test.ts → a.test.ts.off) (中文(简体) ).
  • removed-assertions 在多行内读取一行 /* … */ 块,不以 * (例如重新缩进的)作为代码.
  • 请求移入已删除的助手数 Tests-Removed 拖车是出路.
  • 扫描以行为主,不知道行是坐在字符串内还是模板字面,所以 .only( 或者说 .skip( 在固定字符串中标出标记.

中情局

- uses: actions/checkout@v5
  with:
    fetch-depth: 0 # diff needs the merge-base
- run: pnpm exec repo-rules check
- run: pnpm exec repo-rules diff # base = origin/$GITHUB_BASE_REF in a pull_request job, skipped otherwise

出站代码:0 clean, 1 违规或 Stale 基线, 2 出站错误(从未读作干净).

版本与发布记录

@alxwlw/repo-rules 共发布 10 个版本,首次发布于 2026/10/12;过去 12 个月发布了 10 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.9.2latest2026/11/043 天前
1.9.12026/11/035 天前
1.9.02026/10/299 天前
1.8.02026/10/2612 天前
1.7.12026/10/2216 天前
1.7.02026/10/2216 天前

其他发布通道:bootstrap → 0.0.0-bootstrap.0。

关于 @alxwlw/repo-rules 的常见问题

@alxwlw/repo-rules 是什么?

从alxwlw缺陷检查官身上得到的全repo规则——长的文件,不合理的压制,跳出/聚焦测试,(x)QQ,去掉的断言——只有收缩基线.

如何安装 @alxwlw/repo-rules?

在项目目录运行 npm install @alxwlw/repo-rules,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 repo-rules,可以用 npx repo-rules 直接运行。

@alxwlw/repo-rules 支持 TypeScript 吗?

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

@alxwlw/repo-rules 支持 ESM 还是 CommonJS?

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

@alxwlw/repo-rules 需要什么版本的 Node.js?

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

@alxwlw/repo-rules 可以商用吗?

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

@alxwlw/repo-rules 的下载量有多少?

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

@alxwlw/repo-rules 还在维护吗?

最新版本 1.9.2 发布于 2026/11/04(3 天前);至今共发布 10 个版本,其中过去 12 个月发布了 10 个;首次发布于 2026/10/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。