SuperAPI AI 工具集

compare-codebases

通用与其它

查看项目

更新于 10-15 23:47

技能介绍

用途:compare-codebases 是 jscpd 的一项技能,用 jscpd --compare A B 逐函数比较两个文件夹,找出做同一件事的函数对,并列出各自没有对应项的函数。可用于跨语言移植进度衡量、两套实现对照。

主要能力:jscpd 识别 JavaScript、TypeScript、JSX、TSX、Vue、Svelte、Astro、Python、Rust、Go、Java、Kotlin、C#、C、C++、PHP、Ruby、Scala、Swift 文件中的函数,用内置代码嵌入模型(默认 CodeRankEmbed)把函数代码转成向量,再按代码相似度与名称两步配对,并给出 high/medium/low 等级。测试与代码分开统计,测试只与测试配对。

使用方式:先选两个不重叠的文件夹(指向代码目录而非仓库根),必要时用 --ignore 排除构建产物、依赖与生成文件。首次运行需下载模型(548 MB):npx jscpd --semantic-download。基本运行:npx jscpd --compare billing-py/ billing-ts/。查看全部配对:npx jscpd --compare billing-py/ billing-ts/ -r console-full。生成报告可用 -r markdown -o .jscpd-compare、-r html 或 -r json。

适用场景:跨语言代码移植、两套并行实现对照、查找改名函数、评估重构后函数对应关系。

限制:相似度无法识别行为上的细微差异,漂移的版本仍可能高相似配对;一侧重构越多,按代码配对越少;只比较函数,不比较类型、常量、SQL 或 UI 标记;无函数体的声明与匿名函数不参与;模型在 CPU 上运行,首次较慢,后续复用缓存;退出码始终为 0。阈值、模型等选项可调整,但比较多次运行时应保持文件夹、顺序、选项与模型一致。