我正在使用 nyc
生成覆盖率报告在节点 16 中。
但是,由于某种原因,覆盖率报告(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 ...
适用于所有文件。
我发现,源映射的路径以“file:///”开头。
此外,在“coverage”文件夹中,还有一些名为“file:”的不起眼的文件夹,看起来类似于里面有文件夹的绝对路径。
我不明白这是为什么,但我希望报告使用我的项目目录的相对路径。
最佳答案
我找到了原因:最近有一个 ts-node
补丁更新,从 10.8.0 到 10.8.1 - 他们在源映射中切换到文件 URI。
降级到 10.8.0 解决了我的问题。
关于 nyc 的错误/兼容性问题,ts-node 的存储库中正在进行讨论:https://github.com/TypeStrong/ts-node/issues/1790
关于typescript - 纽约市报告中显示 "Unable to lookup source",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72771145/