comment-analysis
v1.0.1
Published
Code comment rate analysis tool with multi-language support
Downloads
10
Maintainers
Readme
代码注释率统计工具
一个用于统计代码文件中注释率的命令行工具,支持多种编程语言和文件格式。
功能特性
- 🎯 支持多种文件类型:Vue、JavaScript、TypeScript、JSX、TSX、Python、HTML、CSS、SCSS、LESS、Go、Rust、Java
- 📊 统计多种注释类型:单行注释、多行注释、行内注释
- 📈 生成详细的统计表格,包含文件类型、文件数目、注释行数、空行、总行数、注释率
- 🎨 美观的彩色输出,使用 chalk 库美化
- 📁 支持递归分析文件夹及其子文件夹
- 🌍 多语言支持(英文/中文)
安装
方式一:从源码安装
- 克隆或下载项目到本地
- 安装依赖:
pnpm install方式二:全局安装(推荐)
npm install -g comment-analysis使用方法
基本用法
# 分析指定文件夹
comment-analysis /path/to/your/project
# 或者从源码运行
node index.js /path/to/your/project
pnpm start /path/to/your/project语言选项
# 使用英文(默认)
comment-analysis /path/to/your/project
# 使用中文
comment-analysis /path/to/your/project --lang zh-CN
comment-analysis /path/to/your/project -l zh-CN示例
# 分析当前目录
comment-analysis .
# 分析特定项目文件夹
comment-analysis /home/user/my-project
# 分析相对路径
comment-analysis ./src
# 使用中文输出分析
comment-analysis . --lang zh-CN输出示例
开始分析文件夹: /path/to/project
正在分析 3 个文件...
╔═══════════════╤════════════╤════════════╤══════════╤════════════╤═══════════════╗
║ 文件类型 │ 文件数目 │ 注释行数 │ 空行 │ 总行数 │ 注释率 ║
╟───────────────┼────────────┼────────────┼──────────┼────────────┼───────────────╢
║ Vue │ 1 │ 24 │ 19 │ 141 │ 17.02% ║
╟───────────────┼────────────┼────────────┼──────────┼────────────┼───────────────╢
║ Python │ 1 │ 90 │ 33 │ 172 │ 52.33% ║
╟───────────────┼────────────┼────────────┼──────────┼────────────┼───────────────╢
║ JavaScript │ 1 │ 25 │ 11 │ 70 │ 35.71% ║
╟───────────────┼────────────┼────────────┼──────────┼────────────┼───────────────╢
║ 总计 │ 3 │ 139 │ 63 │ 383 │ 36.29% ║
╚═══════════════╧════════════╧════════════╧══════════╧════════════╧═══════════════╝
注释率说明: 优秀 (>30%) | 良好 (15-30%) | 需要改进 (<15%)支持的文件类型
| 文件类型 | 扩展名 | 支持的注释类型 | | ---------- | ------ | ------------------------------------------------- | | Vue | .vue | // 单行注释、/* */ 多行注释、 HTML 注释 | | JavaScript | .js | // 单行注释、/* */ 多行注释 | | TypeScript | .ts | // 单行注释、/* */ 多行注释 | | JSX | .jsx | // 单行注释、/* */ 多行注释、{/* */} JSX 注释 | | TSX | .tsx | // 单行注释、/* */ 多行注释、{/* */} JSX 注释 | | Python | .py | # 单行注释、""" """ 多行注释、''' ''' 多行注释 | | HTML | .html | HTML 注释 | | CSS | .css | // 单行注释、/* */ 多行注释 | | SCSS | .scss | // 单行注释、/* */ 多行注释 | | LESS | .less | // 单行注释、/* */ 多行注释 | | Go | .go | // 单行注释、/* */ 多行注释 | | Rust | .rs | // 单行注释、/* */ 多行注释 | | Java | .java | // 单行注释、/* */ 多行注释、/** */ 文档注释 |
统计说明
- 文件数目: 该类型文件的总数量
- 注释行数: 包含注释的行数(包括单行注释、多行注释、行内注释)
- 空行: 完全为空或只包含空白字符的行数
- 总行数: 文件的总行数
- 注释率: 注释行数占总行数的百分比
项目结构
comment-analysis/
├── index.js # 主程序文件
├── package.json # 项目配置和依赖
├── README.md # 英文文档
├── README.zh-CN.md # 中文文档
├── .gitignore # Git忽略文件配置
└── tests/ # 测试文件文件夹
├── README.md # 测试文件说明
├── test-example.js # JavaScript测试文件
├── test-example.vue # Vue测试文件
├── test-example.py # Python测试文件
├── test-example.go # Go测试文件
├── test-example.rs # Rust测试文件
└── test-example.java # Java测试文件依赖项
commander: 命令行参数解析glob: 文件模式匹配chalk: 终端颜色输出cli-table3: 美观的表格输出
许可证
MIT License
