🎯 智能统计项目代码量、文字数和 Token 使用量的专业工具 📈 支持历史对比分析、趋势可视化、50+ 种编程语言 🌙 Night Theme V3.2 Ω: 热力图可视化 + 极致动画 + CLI 进度条 ✨ v3.2.0 全新发布:Ω 极致美学版
- 🔥 文件大小热力图:全新可视化组件,以热力图形式展示项目中最大的50个文件,一眼识别"膨胀"文件。
- 📊 CLI 进度条:美观的终端进度显示,支持预扫描文件计数、ETA预估、当前文件名。
- 🎨 视觉体验升级:自定义选择高亮、渐变滚动条、卡片悬停动画、响应式布局优化。
- ⚙️ 自定义语言配置:支持
.stats-languages.json配置文件,自定义文件扩展名与语言映射。 - 🐛 精准匹配修复:彻底修复
.gitignore规则误排除问题(如layout.tsx因包含out被误排)。
双击 统计项目.bat → 在列表中输入数字选择要统计的项目
提示:输入 1 可统计当前所有子项目(父目录模式)
拖动项目文件夹到 统计项目.bat → 统计该项目
双击 检查更新.bat → 检查并更新到最新版本
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、.git、dist等 - ✅ 智能自身排除:自动防止将工具自身的代码计入统计结果(仅在统计父目录时生效)
- 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条当有 ≥2 条历史记录时,打开 results/<项目名>/最新/可视化报告.html 可看到:
- 📈 代码行数趋势曲线
- 📊 文件数量变化
- 💰 Token 估算趋势
- 🔄 历史对比分析卡片(可“隐藏对比 / 显示对比”)
- 准确估算 Token 使用量
- 提取的文字内容可直接提供给 AI
- 排除第三方库,让 AI 专注于你的代码
- 定期统计,跟踪项目增长
- 多次统计自动生成趋势图
- 对比不同时间点的代码状态
- 快速了解项目规模
- 识别复杂度高的文件
- 评估代码注释率
- 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
- 中文: ~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
- 将工具文件夹放在任意位置(如桌面或项目根目录)。
- 双击
统计项目.bat。 - 输入数字选择要统计的项目(或输入
1统计所有)。 - 几秒后,打开生成的 HTML 报告查看详情。
- ✅ 只读操作 - 只读取文件,不做任何修改
- ✅ 本地运行 - 所有处理在本地完成
- ✅ 智能排除 - 自动排除敏感文件
- ✅ 尊重配置 - 遵守
.gitignore规则
欢迎贡献!请 Fork 本仓库并提交 Pull Request,或提交改进“历史对比”与“趋势分析”的想法。
MIT License - 详见 LICENSE
Ω Code Agent
- GitHub: @NightMin2002
- Email: nightmin200202@gmail.com
- 📝 提交 Issue
- ⭐ 如果觉得有用,请给个星标!
Made with ❤️ and 🌙 by Ω Code Agent