GitHub: https://github.com/xcatliu/cqc
之前做了个工具可以检查源代码行数,代码重复率和圈复杂度。收到很多好评
这次版本更新,添加了很多新功能,也可以方便的添加进 git hooks 或者构建程序中啦!
cqc ( Code Quality Checker )是一个代码质量检查工具,可以通过运行一个脚本来获取项目的源代码行数,代码重复率和圈复杂度。目前支持的文件类型有 js, jsx, css, less, scss, sass, styl
# 安装
npm i cqc -g
# 运行
cqc src/**/*.js
# 输出
Number of files: 10
Source lines of code: 647
Duplicate rate: 3.46%
High complexity rate: 0.00%
Max complexity: 10
--ignore-path
设置 ignore 文件,比如 .gitignore
, .eslintignore
--ignore-pattern
设置 ignore pattern,即忽略的文件--filter-pattern
仍然检查所有输入的文件,但是在详细输出中,只会输出与 filterPattern 相关的文件--jscpd-min-lines
即 jscpd 的 min-lines 选项,设置重复度检查的最小行数--jscpd-min-tokens
即 jscpd 的 min-tokens 选项,设置重复度检查的最小 token 数--complexity-max
设置识别为高复杂度的条件--disable-base
禁用基本检查--disable-sloc
禁用源代码行数检查--disable-jscpd
禁用 jscpd 检查--disable-complexity
禁用 complexity 检查-f
, --format
设置输出格式,可选为 json--verbose
显示输出详细内容--threshold-jscpd
设置重复度百分比阈值,若超过阈值则会警告并退出程序--threshold-complexity
设置复杂度百分比阈值,若超过阈值则会警告并退出程序例如:
const CodeQualityChecker = require('cqc');
const codeQualityChecker = new CodeQualityChecker();
// This will return a checkerResult object which include the check result
const cqcResult = codeQualityChecker.check([
'src/**/*.js',
'src/**/*.jsx'
], {
ignorePath: '.gitignore,.eslintignore',
ignorePattern: 'src/vendor/**/*.js,src/third-party/**/*.js',
filterPattern: 'src/path/to/filterPattern',
jscpdMinLines: 5,
jspcdMinTokens: 70,
complexityMax: 10,
disableBase: false,
disableSloc: false,
disableJscpd: false,
disableComplexity: false,
format: undefined,
verbose: true,
thresholdJscpd: 3,
thresholdComplexity: 10
});
// Calling report function will console.log result like cli did
cqcResult.report({
format: undefined,
verbose: true,
thresholdJscpd: 3,
thresholdComplexity: 10
});
没有测试真是太难开发了,添加了测试之后增加了很多开发效率,也增加了很大的安全感。 现在的测试覆盖率有 94% 了。
1
GPIO 2017-09-29 19:38:34 +08:00
有计划支持 C、Python 吗?
|
3
dyxang 2017-09-29 21:41:24 +08:00 via Android
小工具
mobi.css 的中文…… |