Skip to content

NightMin2002/project-stats-tool

Repository files navigation

🌙 项目统计工具 (Project Stats Tool)

Version Node License

🎯 智能统计项目代码量、文字数和 Token 使用量的专业工具 📈 支持历史对比分析、趋势可视化、50+ 种编程语言 🌙 Night Theme V3.2 Ω: 热力图可视化 + 极致动画 + CLI 进度条 ✨ v3.2.0 全新发布:Ω 极致美学版


🔄 最新增强(v3.2.0)

  • 🔥 文件大小热力图:全新可视化组件,以热力图形式展示项目中最大的50个文件,一眼识别"膨胀"文件。
  • 📊 CLI 进度条:美观的终端进度显示,支持预扫描文件计数、ETA预估、当前文件名。
  • 🎨 视觉体验升级:自定义选择高亮、渐变滚动条、卡片悬停动画、响应式布局优化。
  • ⚙️ 自定义语言配置:支持 .stats-languages.json 配置文件,自定义文件扩展名与语言映射。
  • 🐛 精准匹配修复:彻底修复 .gitignore 规则误排除问题(如 layout.tsx 因包含 out 被误排)。

🚀 快速开始

方法 1:交互式选择(🔥 强力推荐)

双击 统计项目.bat → 在列表中输入数字选择要统计的项目

提示:输入 1 可统计当前所有子项目(父目录模式)

方法 2:拖放操作

拖动项目文件夹到 统计项目.bat → 统计该项目

方法 3:检查更新

双击 检查更新.bat → 检查并更新到最新版本

方法 4:命令行

node src/project-stats.js              # 启动交互式选择
node src/project-stats.js ../my-app    # 统计指定项目
node src/project-stats.js --help       # 显示帮助信息

✨ 核心特性

📊 全面统计

  • 文字统计 - 中文字符、英文单词、总字符数
  • 代码统计 - 代码行、注释行、空白行(含占比)
  • 复杂度分析 - 平均行长度、最大文件、最长行
  • Token 估算 - 准确估算 AI Token 使用量
  • 语言分布 - 自动识别 50+ 种编程语言
  • 按语言统计 - 每种编程语言的详细代码量和文件数

📈 历史与对比

  • 自动记录:每次统计自动保存到 results/<项目名>/history.json
  • 实时对比:控制台输出与上一轮差异
  • 趋势图表:总行数 / 文件数 / Tokens / 代码行趋势
  • 可视化对比:HTML 报告中卡片化展示差异(可折叠)
  • 版本管理:CLI 支持任意历史版本对比

🎯 智能过滤

  • ✅ 自动识别并排除第三方库(lib、vendor、.min.js 等)
  • ✅ 自动读取 .gitignore 规则
  • ✅ 智能排除 node_modules.gitdist
  • 智能自身排除:自动防止将工具自身的代码计入统计结果(仅在统计父目录时生效)

🌙 可视化报告 (V3.2.0)

  • Night Theme V3.2 Ω - 玻璃拟态风格 + 动态月亮动画
  • 全 SVG 图标 - 高清矢量图标系统
  • 粒子动画 - 交互式动态背景
  • 趋势图表 - Chart.js 驱动的历史数据可视化
  • 文件树 - SVG 风格的可折叠项目结构视图(优化:无闪烁)
  • 语言级图表 - 按语言的代码量对比图
  • 🔥 文件热力图 - 文件大小可视化,快速定位大文件
  • 响应式布局 - 完美适配移动端和平板

📂 输出结果

运行后会在 results/ 目录生成:

results/
├── MyProject1/                    ← 按项目名自动分类
│   ├── 最新/
│   │   ├── 可视化报告.html        ← ⭐ 推荐在浏览器中打开 (V3.0.0 体验最佳)
│   │   ├── 统计数据.json
│   │   ├── 统计报告.md
│   │   └── ...
│   ├── 2025-11-04_10-30-11/       ← 时间戳历史备份
│   └── history.json               ← 该项目的历史索引
│
└── MyProject2/
    ├── 最新/
    └── ...

文件组织优势

  • 多项目隔离:不同项目的历史记录互不干扰
  • 清晰有序:快速找到特定项目的最新报告
  • 安全备份:历史记录自动备份,防止数据丢失

🔧 历史对比功能

查看历史记录

# 双击运行(Windows)
查看历史.bat

# 或使用 Node.js
node src/view-history.js                # 列表
node src/view-history.js detail 3       # 查看第3条详情
node src/view-history.js compare 1 5    # 对比第1和第5条

HTML 趋势图

当有 ≥2 条历史记录时,打开 results/<项目名>/最新/可视化报告.html 可看到:

  • 📈 代码行数趋势曲线
  • 📊 文件数量变化
  • 💰 Token 估算趋势
  • 🔄 历史对比分析卡片(可“隐藏对比 / 显示对比”)

💡 使用场景

🤖 AI 辅助开发

  • 准确估算 Token 使用量
  • 提取的文字内容可直接提供给 AI
  • 排除第三方库,让 AI 专注于你的代码

📈 项目管理

  • 定期统计,跟踪项目增长
  • 多次统计自动生成趋势图
  • 对比不同时间点的代码状态

📝 代码审查

  • 快速了解项目规模
  • 识别复杂度高的文件
  • 评估代码注释率

🔧 技术规格

支持的语言(50+)

  • Web前端: JavaScript, TypeScript, HTML, CSS, Vue, React, Svelte
  • 后端: Python, Java, Go, Rust, PHP, Ruby, C#, C++, C, Swift, Kotlin
  • 函数式: Elixir, Erlang, Elm, Haskell, Clojure, F#
  • 其他: Dart, Lua, R, Scala, Perl
  • 配置: JSON, YAML, TOML, XML, INI, ENV
  • 脚本: Shell, Bash, PowerShell, Batch
  • 数据库: SQL, GraphQL, Prisma
  • 标记: Markdown, reStructuredText, LaTeX

Token 估算规则

  • 中文: ~1.5 字符/token
  • 英文: ~1.3 单词/token
  • 代码: ~3.5 字符/token

⚠️ 注意: 此为粗略估算,实际值可能有 ±20% 的偏差

自定义语言配置

在项目根目录创建 .stats-languages.json

{
  "languages": {
    ".myext": "MyLanguage",
    ".xyz": "XYZ Script"
  }
}

📝 参考 stats-languages.example.json 获取完整配置模板

独立性保证

  • 零外部依赖 - 仅使用 Node.js 内置模块(fs, path, readline
  • 本地化库文件 - Chart.js 和 Particles.js 已内置
  • 开箱即用 - 无需 npm install

🧪 推荐工作流

  1. 将工具文件夹放在任意位置(如桌面或项目根目录)。
  2. 双击 统计项目.bat
  3. 输入数字选择要统计的项目(或输入 1 统计所有)。
  4. 几秒后,打开生成的 HTML 报告查看详情。

🔒 安全与隐私

  • 只读操作 - 只读取文件,不做任何修改
  • 本地运行 - 所有处理在本地完成
  • 智能排除 - 自动排除敏感文件
  • 尊重配置 - 遵守 .gitignore 规则

📖 文档


🤝 贡献

欢迎贡献!请 Fork 本仓库并提交 Pull Request,或提交改进“历史对比”与“趋势分析”的想法。


📄 许可证

MIT License - 详见 LICENSE


👨‍💻 作者

Ω Code Agent


📮 支持

  • 📝 提交 Issue
  • ⭐ 如果觉得有用,请给个星标!

Made with ❤️ and 🌙 by Ω Code Agent

立即体验 v3.2.0 Ω 极致美学版!

About

智能项目统计工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors