VSCode 自带不支持项目级代码行数统计,必须依赖插件或命令行工具;VSCodeCounter 需开启 "VSCodeCounter.useGitignore": true 并重启才可信,否则默认计入 node_modules 等无关文件;Project Statistics 默认排除常见目录但需手动添加 out/.next/.nuxt,且仅统计物理行数;最精准方案是使用 tokei 命令行工具,它自动识别语言、剔除注释与空行、严格遵守 .gitignore。

VSCode 自带不支持项目级代码行数统计,必须靠插件或命令行工具;但多数插件默认结果不可信——不是少算了,而是多算了 node_modules、lock 文件、图片甚至二进制资源。
VSCodeCounter 必须手动开启 useGitignore 才能信任结果
刚装完插件右键统计,node_modules、yarn.lock、dist/ 下的压缩 JS 都出现在结果里,不是插件坏了,是它默认完全忽略你的 .gitignore。不配就等于把整个依赖树当源码扫一遍。
- 必须在
settings.json中加这一行:"VSCodeCounter.useGitignore": true - 改完要重启 VS Code(热重载不生效)
- 验证方法:运行
VSCodeCounter: Count lines in workspace,看输出里是否还有node_modules下的文件;如果有,说明没识别到项目根目录(右下角路径不含.git),得重新用“文件 → 打开文件夹”打开正确根路径
Project Statistics 默认排除常见目录,但不读 .gitignore
它默认跳过 node_modules、.git、dist、build,但对 out、.next、.nuxt 这类现代框架输出目录无感,得手动补进设置。
- 配置项是:
"projectStatistics.excludedFolders": ["out", ".next", ".nuxt"] - 它只按后缀分类(
.ts和.tsx分开统计),不解析语法,.vue里的<script>块不会合并进 JavaScript 类别 - 不区分注释、空行和有效代码,纯物理行数(LOC),不适合做质量评估
想真正可信?直接用 tokei 命令行工具
tokei 是目前唯一能自动识别语言、剔除注释与空行、且严格遵守 .gitignore 的方案。VSCode 插件再怎么配,也绕不开“误判锁文件为文本”或“读取二进制文件”的问题。
- 安装:
brew install tokei(macOS)、choco install tokei(Windows)、cargo install tokei(Linux) - 运行:
tokei(在项目根目录),重点关注code列(真实逻辑行) - 集成进 VSCode:往
.vscode/tasks.json里加一个shell类型任务,type: "process"会失败
真正麻烦的不是怎么装插件,而是你得清楚哪些行该算、哪些不该算——比如 tsconfig.json 是配置不是源码,package-lock.json 是锁文件不是逻辑,.d.ts 是声明不是实现。这些细节,插件不会替你判断。


















