VSCode Counter 必须开启 useGitignore 才可信,否则默认忽略 .gitignore 会统计 node_modules 等无关文件;需在 settings.json 中添加 "VSCodeCounter.useGitignore": true 并重启生效。

VSCode Counter 必须开启 useGitignore 才可信
刚装完 VSCode Counter 直接右键统计,结果里常出现 node_modules、yarn.lock 甚至 dist/ 下的压缩 JS——这不是插件出错,是它默认完全忽略你的 .gitignore。不手动开启,就等于把整个 node_modules 当源码扫一遍。
必须在 settings.json 中加这一行:
"VSCodeCounter.useGitignore": true
改完要重启 VS Code(热重载不生效)。验证方法:运行 VSCodeCounter: Count lines in workspace,看输出里是否还有 node_modules 下的文件统计。如果有,说明没识别到项目根目录(右下角路径不含 .git),得重新用“文件 → 打开文件夹”打开正确根路径。
Project Statistics 不区分注释与空行,但能按后缀分类
它只数换行符,不解析语法,所以 .ts 和 .tsx 是分开统计的,.vue 文件里的 <script> 块也不会被合并进 JavaScript 类别。如果你要算“前端逻辑总量”,得自己加总 js、ts、jsx、tsx 几栏。
- 右键项目根目录 →
Project Statistics: Show Project Stats(不是点侧边栏图标) - 默认排除
node_modules、.git、dist、build,但out或.next得手动补进projectStatistics.excludedFolders - 它不识别
.gitignore,也不跳过注释/空行,纯物理行数(LOC),不适合做质量评估
tokei 命令行工具才是最准的替代方案
VSCode 插件再怎么配,也难绕过“读取二进制文件”或“误判锁文件为文本”的问题。tokei 是目前唯一能自动识别语言、剔除注释与空行、且严格遵守 .gitignore 的工具。
安装后直接在项目根目录运行:
tokei
输出里重点关注 code 列(真实逻辑行),comment 和 blank 是分离统计的。如果想集成进 VSCode,可配 tasks.json:
{
"label": "count lines",
"type": "shell",
"command": "tokei"
}
注意:type 必须是 shell,不能写 process;否则调不到命令行别名或全局 bin。
files.associations 配错会导致统计崩盘
很多插件依赖 VSCode 对文件类型的判断。比如把 *.vue 关联成 html,VSCode Counter 就会把整个 .vue 当 HTML 统计,<script> 里的 JS 行全算进 HTML 类别;又或者把 yarn.lock 当 JSON 解析,单文件贡献上万行。
安全做法是显式屏蔽非源码文件:
"files.associations": {
"*.lock": "ignore",
"*.png": "ignore",
"*.jpg": "ignore",
"*.pdf": "ignore"
}
或者更精准地用白名单机制(如 Project Statistics 的 includeFiles)只允许 **/*.js、**/*.ts、**/*.vue 等后缀参与统计——别信“自动识别文本文件”,VSCode 的 MIME 推断在某些场景下根本不可靠。
真正影响结果准确性的,从来不是插件本身,而是你有没有动过手去关掉那些默认开着的“统计陷阱”。


















