最常问的问题
问题一:为什么 Compare 中的变更代码文件数量和 GitLab 不一致?
Compare 中统计的是 Babel 参与编译并进入覆盖率计算链路 的文件,例如 js、jsx、ts、tsx 等;而 GitLab 展示的是 Git diff 的文件变化结果。两者统计口径不同,因此数量可能不一致。
例如:
- 你在一次提交中改了 10 个文件,其中包含:
- 6 个
ts/tsx业务文件 - 2 个
md文档 - 1 个
json配置 - 1 张
png图片
- 6 个
- GitLab 的 compare 会显示 10 个变更文件。
- Compare 页面通常只会聚焦可编译并参与覆盖率计算的代码文件(如上面的 6 个
ts/tsx),所以看到的文件数可能是 6。
再比如:
- GitLab 中某些文件虽然发生了变更,但属于样式资源、静态资源、文档或未纳入 Babel 处理范围的文件。
- 这些文件不会进入覆盖率计算,因此不会计入 Compare 的变更代码文件统计。
如果你想快速判断“为什么少了几个文件”,可以按下面思路排查:
- 先在 GitLab compare 中列出全部变更文件类型。
- 过滤出
js、jsx、ts、tsx等代码文件。 - 再对照项目的 Babel/插桩配置,确认这些代码文件是否在处理范围内。
- 对不在范围内的文件(如文档、图片、部分配置文件)视为口径差异导致的正常现象。