JSCPD 代码复制粘贴检测工具教程
jscpdCopy/paste detector for programming source code.项目地址:https://gitcode.com/gh_mirrors/js/jscpd
1. 项目目录结构及介绍
JSCPD 的目录结构主要包括以下几个关键部分:
.
├── bin # 存放 CLI 入口脚本
├── lib # 存放核心功能代码
│ ├── detectors # 代码重复检测器
│ └── reporters # 报告生成器
├── src # 主要源代码
│ ├── cli # 命令行接口相关代码
│ ├── core # 核心检测算法
│ ├── tokenizer # 令牌化工具
│ ├── stores # 数据存储模块
│ └── reporters # 报告生成模块
└── packages # 分离出的独立模块,如 HTML 报告器、Finder 等
├── @jscpd/*
...
这些目录包含了项目的核心组件,例如 bin
目录下的 jscpd.js
是 CLI 的执行入口,lib
和 src
下的子目录则是实现检测算法和报告生成的代码。
2. 项目的启动文件介绍
JSCPD 的启动主要通过命令行接口 (CLI),用户通常不需要直接运行源代码。使用 NPM 或 Yarn 安装后,可以通过全局命令 jscpd
来执行检测:
$ npx jscpd /path/to/source
bin
目录下的 jscpd.js
是 CLI 的入口文件,它解析命令行参数并调用相应的检测逻辑。当运行 jscpd
命令时,实际上会执行这个脚本。
3. 项目的配置文件介绍
JSCPD 允许通过配置文件来定制其行为,一般有两种方式:
3.1. 创建 jscpd.json
文件
在项目根目录下创建名为 jscpd.json
的文件,然后添加配置选项:
{
"threshold": 1,
"reporters": ["html", "console"],
"ignore": ["git", "node_modules", "public", "husky"],
"format": ["javascript", "typescript"],
"absolute": true
}
上述配置涵盖了阈值、报告类型、忽略路径、支持的文件格式和是否使用绝对路径。
3.2. 在 package.json
中添加配置
如果你的项目已经有一个 package.json
文件,可以在其中添加 jscpd
字段:
{
"name": "your-project",
"jscpd": {
"threshold": 1,
"reporters": ["html", "console"],
"ignore": ["git", "node_modules", "public", "husky"],
"format": ["javascript", "typescript"],
"absolute": true
}
}
通过这种方式,当你运行 jscpd
命令时,JSCPD 将自动加载这些配置。
这样,你就了解了 JSCPD 项目的目录结构、启动文件以及配置文件的基本情况。现在你可以根据你的需求设置配置并开始检测代码中的重复片段了。
jscpdCopy/paste detector for programming source code.项目地址:https://gitcode.com/gh_mirrors/js/jscpd