From 5dd3a1adf33f6ff4b6a97d5fa76dba11a90d1efd Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Fri, 12 May 2023 15:44:00 +0800 Subject: [PATCH] fix: patch tsc to not crash on composite project errors Fixes #2622 I don't know the exact detail of the crash, but I find that tsc crashed because the `diagnostic.file` object is somehow missing a `resolvedPath` field. Meanwhile, the `fileName` field is always present. So I just added a fallback to `fileName` in the patch. Maybe related: https://github.com/microsoft/TypeScript/issues/54057 I only add it to the 5.0 branch because I haven't tested it on 4.x, so let's play it safe. --- packages/vue-tsc/bin/vue-tsc.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/vue-tsc/bin/vue-tsc.js b/packages/vue-tsc/bin/vue-tsc.js index 37929b10d..04397648c 100755 --- a/packages/vue-tsc/bin/vue-tsc.js +++ b/packages/vue-tsc/bin/vue-tsc.js @@ -25,6 +25,8 @@ fs.readFileSync = (...args) => { .filter(file => !file.toLowerCase().includes('__vls_')) .map(file => file.replace(/\.vue\.(j|t)sx?$/i, '.vue')) ) {`); + + tryReplace(`relativeToBuildInfo(file.resolvedPath)`, `relativeToBuildInfo(file.resolvedPath || file.fileName)`); } return tsc;