如何统计项目代码?So easy~

大家好,我是 Java陈序员,我们无论是卑微的码农还是项目管理者,常常需要统计项目的代码行数,甚至有时候代码行数的多少会影响年终😭。

虽然说 IDE 能帮忙统计代码行数,但往往只是单文件内、单语言的统计,如果是一个庞大的项目要如何统计呢?

今天,给大家介绍一个统计项目代码行数的工具------ cloc.

项目介绍

cloc 支持对多种编程语言中的空白行、注释行和源代码的物理行进行计数。

给定代码库的两个版本,cloc 可以计算空白行、注释行和源代码行中的差异。

除了统计单个文本文件、目录和 git 存储库中的代码外, cloc 还可以统计 .tar (包括压缩版本)、 .zip.whlipynb.rpm.src.deb 等类型的文件。

项目地址:

bash 复制代码
https://github.com/AlDanial/cloc

下载地址:

bash 复制代码
https://github.com/AlDanial/cloc/releases

安装使用

可以根据操作系统,选择对应的方法进行安装:

bash 复制代码
 
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           # macOS with MacPorts
brew install cloc                # macOS with Homebrew
choco install cloc               # Windows with Chocolatey
scoop install cloc               # Windows with Scoop

Windows 系统,也可以选择下载 .exe 文件:

使用 cmd 命令窗口执行。

统计单个文件代码

指定某个文件来统计行数

统计整个项目代码

统计整个项目代码,可以看到可以根据不同的语言来输出文件数、空行、注释和代码行数

统计压缩包代码

cloc 更为强大的一点是可以统计压缩包里面的代码行数!

不同格式输出

cloc 可以将代码统计结果按照不同格式输出,只要在后见加上参数即可。比如想要输出 JSON 格式,则使用参数 --json.

JSON 的格式输出

Yaml 的格式输出

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

bash 复制代码
https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

bash 复制代码
https://chencoding.top:8090/#/

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!

相关推荐
wei_shuo14 小时前
openEuler 底座赋能:openGauss 数据库部署与性能实战评测
后端
用户40981702151014 小时前
Python 的基本类型
后端
是一碗螺丝粉14 小时前
React Native 运行时深度解析
前端·react native·react.js
Jing_Rainbow14 小时前
【前端三剑客-9 /Lesson17(2025-11-01)】CSS 盒子模型详解:从标准盒模型到怪异(IE)盒模型📦
前端·css·前端框架
爱泡脚的鸡腿14 小时前
uni-app D6 实战(小兔鲜)
前端·vue.js
青年优品前端团队14 小时前
🚀 不仅是工具库,更是国内前端开发的“瑞士军刀” —— @qnvip/core
前端
北极糊的狐14 小时前
Vue3 中父子组件传参是组件通信的核心场景,需遵循「父传子靠 Props,子传父靠自定义事件」的原则,以下是资料总结
前端·javascript·vue.js
codetown14 小时前
openai-go通过SOCKS5代理调用外网大模型
人工智能·后端
星辞树14 小时前
MIT 6.824 Lab 3 通关实录:从 Raft 到高可用 KV 存储
后端
看到我请叫我铁锤15 小时前
vue3中THINGJS初始化步骤
前端·javascript·vue.js·3d