umi-plugin-jscpd
copy paste detector for umi plugin
Usage
- 安装依赖
yarn add umi-plugin-jscpd --dev
- umi config 增加 jscpd 配置。如果使用默认配置,可跳过这一步。
// jscpd 默认配置,除 skipLint 外,其他都是透传 jscpd 配置项
export default {
jscpd: {
// 配合pre-commit使用。默认不跳过 lint 检查。
skipLint: false,
// 代码重复率检测阈值,默认值5,表示代码重复率超过5%会 lint 失败
threshold: 5,
// 最小代码区块 token 大小
minTokens: 50,
// 最小代码区块行数
minLines: 5,
// 最大代码区块行数
maxLines: 1000,
// 最大文件大小
maxSize: '100kb',
// reporter 列表
reporters: ['console'],
// 忽略的文件
ignore: ['node_modules', 'src/.umi/*'],
// 检测的文件格式,默认只检测js、jsx、ts、tsx类型的文件
format: ['javascript', 'jsx', 'typescript', 'tsx'],
// 忽略的代码区块,默认忽略 import 语句
ignorePattern: ["import.*from\s*'.*'"]
},
}
- 如果是配合 pre-commit 使用,修改 package.json
"lint-staged": {
"**/*.{js,jsx,ts,tsx}": [
"umi jscpd"
]
},
- 如果只是用来检查项目中的代码覆盖率,可直接执行
umi jscpd /path/to/source