typescript - nyc 在报告中显示“无法查找源”
我正在使用 Node 16 中的 nyc 生成覆盖率报告。
然而,不知出于何种原因,覆盖率报告(包括 lcov 和 html)出现了混乱,因为源文件的路径错误。它们的路径模式如下:
<relative path>file:<absolute path><file name>例如 SF:src/rest/file:/home/<user>/code/<project>/src/rest/auth.ts 在 lcov.info 中
因此,我的html覆盖率报告显示如下错误
Unable to lookup source: /home/<user>/code/<project>/src/rest/file:/home/<user>/code/<project>/src/rest/auth.ts (ENOENT: no such file or directory, open ...适用于所有文件。
我发现,sourcemaps 的路径以 "file:///" 开头。
此外,在“coverage”文件夹中,有一些名为“file:”的晦涩文件夹,它们似乎类似于包含子文件夹的绝对路径。
我不明白这是为什么,但我希望报告使用相对于我的项目目录的路径。
答案#1
我找到了原因:最近 ts-node 从 10.8.0 更新到了 10.8.1——在源映射中他们改用了文件 URI。
降级到10.8.0对我解决了这个问题。
关于 nyc 的 bug/兼容性问题,ts-node 的仓库中有一个正在进行的讨论:https://github.com/TypeStrong/ts-node/issues/1790