تایپاسکریپت - nyc در گزارشها میگوید «عدم توانایی در یافتن منبع»


من در حال تولید گزارشهای پوشش با استفاده از nyc در Node 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 از نسخه ۱۰.۸.۰ به ۱۰.۸.۱ منتشر شد - که در آنها به جای منابع قبلی، از URI فایلها در نقشههای منبع استفاده کردند.

کاهش به نسخه ۱۰.۸.۰ مشکل را برای من حل کرد.

در مورد مشکل باگ/سازگاری با nyc، یک بحث جاری در مخزن ts-node وجود دارد: https://github.com/TypeStrong/ts-node/issues/1790