工具介绍
Cloc是一款使用Perl语言开发的开源代码统计工具。几乎支持全平台,全语言。能够计算文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。
cloc的优点
- 可以对多种文件进行统计,同时支持压缩文件
- 可以将结果输出为纯文本,SQL,JSON,XML,YAML等格式
- 可以将多次运行的结果进行汇总输出
- 可对git的分支进行统计
安装
支持docker安装, window 支持exe,同时也可通过其他的包管理器安装
npm install -g cloc # https://www.npmjs.com/package/cloc
sudo apt install cloc # Debian, Ubuntu
sudo yum install cloc # Red Hat, Fedora
sudo dnf install cloc # Fedora 22 or later
sudo pacman -S cloc # Arch
sudo emerge -av dev-util/cloc # Gentoo https://packages.gentoo.org/packages/dev-util/cloc
sudo apk add cloc # Alpine Linux
doas pkg_add cloc # OpenBSD
sudo pkg install cloc # FreeBSD
sudo port install cloc # Mac OS X with MacPorts
brew install cloc # Mac OS X with Homebrew
choco install cloc # Windows with Chocolatey
scoop install cloc # Windows with Scoop
以前端为例,我们可以通过npm来安装
使用
单一文件统计
cloc README.md
文件夹统计
cloc ./src
压缩档案统计
cloc test.zip
cloc可支持对Rar,Zip,Java .ear等压缩文件的统计
可对git特定分支进行统计
prompt> git clone http://git.tiker.net/trees/pudb.git
prompt> cd pudb
prompt> cloc 6be804e07a5db
汇总统计
可以借助shell的循环,对多文件进行多次统计,并输出统计结果
for d in ./*/ ; do (cd "$d" && echo "$d" && cloc --vcs git); done
排除某些目录
比如我们在统计前端代码的时候,希望排除node_modules目录,那么可以借助--not-match-f参数来实现
cloc --fullpath --not-match-f=node_modules