BaryshevRS/clone-alert
GitHub: BaryshevRS/clone-alert
一款兼容 PMD CPD 算法的高性能代码复制检测工具,专为 JS/TS 生态及主流前端框架模板设计,帮助团队在 CI 流程中自动发现并阻止重复代码。
Stars: 3 | Forks: 0
# clone-alert
[](https://github.com/BaryshevRS/clone-alert/actions/workflows/ci.yml) [](https://www.npmjs.com/package/clone-alert) [](./LICENSE) [](https://nodejs.org) [](https://www.npmjs.com/package/clone-alert) [](#duplication-badge)
**clone-alert** 通过比较 **token 流** 来查找代码库中重复和复制粘贴的代码——这与 [PMD CPD](https://pmd.github.io/) (Copy‑Paste Detector) 所采用的成熟方案相同,但它是专为 JavaScript/TypeScript 生态系统和前端模板原生构建的。它可以捕获代码克隆,推行 **DRY** 原则,减少技术债务,并在出现重复代码时使构建失败。
```
npx clone-alert --minimum-tokens 50 --files src
```
## 为什么选择 clone-alert?
- 🎯 **兼容 PMD CPD** — 忠实移植了 PMD 的匹配算法和 JavaScript/TypeScript tokenizer,并已通过 PMD 官方的黄金测试集验证。
- ⚡ **在大型 monorepo 中表现出色** — 采用结构体数组 token 核心,结合 Karp–Rabin 滚动哈希和基数排序桶。在我们的[基准测试](#benchmarks)中,它比 PMD CPD **快 10–27 倍**,同时内存消耗减少 **1.3–2.6 倍**,测试涵盖了从 Next.js 到 nx 的真实代码库。
- 🧩 **原生支持前端模板** — 不仅限于 `