vscode counter 必须开启 "vscodecounter.usegitignore": true 并重启才可信,否则默认忽略 .gitignore,将 node_modules 等全计入导致严重失真;验证需检查统计输出是否含 node_modules/ 或 yarn.lock,若有则说明未识别项目根目录。

VSCode Counter 默认不读 .gitignore,不配就等于把 node_modules 当源码数
必须开启 useGitignore 才能信任统计结果
刚装完 VSCode Counter 直接右键统计,输出里常出现 node_modules 下成百上千个文件——这不是插件 bug,是它默认完全忽略你的 .gitignore。不手动启用,统计值就严重失真。
- 在
settings.json中添加:"VSCodeCounter.useGitignore": true - 改完必须重启 VS Code(热重载不生效)
- 验证方式:运行
VSCodeCounter: Count lines in workspace,看 OUTPUT 面板中是否还有node_modules/或yarn.lock路径 - 如果仍有,说明 VS Code 没识别到项目根目录(右下角路径不含
.git),需用“文件 → 打开文件夹”重新加载正确根路径
exclude 和 fileExtensions 的优先级关系
exclude 是硬过滤,fileExtensions 是白名单式收口;两者共存时,exclude 先执行,再从剩余文件中按后缀筛选。
-
"VSCodeCounter.exclude": ["**/dist/**", "**/.next/**"]会直接跳过整个目录,不管里面有没有.ts文件 -
"VSCodeCounter.fileExtensions": [".ts", ".tsx", ".js", ".jsx"]只对未被exclude掉的文件生效 - 别把
package.json或tsconfig.json写进fileExtensions——它们不是源码,加进去会拉高“代码行”虚值 - 若项目含大量 Markdown 文档(如
docs/),建议显式排除:"**/docs/**",否则 JSDoc 式注释块可能被误算为 comment 行
为什么 Comments 数值异常高?
VSCode Counter 对注释的识别基于行首/行内符号(//、/*、# 等),不解析语法结构,所以容易高估。
-
README.md里的代码块、YAML 注释、甚至 JSON 字符串中的//都会被当注释行计入 - TypeScript 接口定义前的 JSDoc 块(
/** ... */)全算 comment,哪怕它是类型契约而非说明文字 - 没有开关能关闭注释统计,唯一可控手段是排除非源码文件类型,比如加
"**/*.md"到exclude - 如果真要评估“可维护性”,别信这个
Comments值——它反映的是文本特征,不是文档质量
输出格式与后续分析的衔接点
VSCode Counter 默认生成 .VSCodeCounter/result.md 和 counts.json,但字段粒度较粗,不适合自动化处理。
-
counts.json是扁平结构,只含汇总值(totalLines、codeLines等),没有按文件或目录拆分 - 想做趋势分析(比如每周比对),得靠脚本解析
result.md中的表格,或改用命令行工具tokei -
tokei输出是 JSON,天然支持管道处理,且自动区分code/comments/blanks,还严格遵守.gitignore - VSCode 插件再怎么调,也绕不开“误读锁文件”“无法跳过二进制资源”这些底层限制——复杂项目建议把
tokei当事实标准,插件仅作快速预览
真正影响数据可信度的,从来不是功能多寡,而是 .gitignore 是否生效、exclude 是否覆盖自定义构建目录、以及你有没有把配置文件当源码统计。这三个点漏一个,数字就不可比。











