🌟

ReactNative+Expoプロジェクトでtsc実行時に `Error: Debug Failure.` で失敗したときの対処

2023/01/16に公開

ReactNative+Expoでモバイルアプリを開発中、あるとき tsc を実行したら下記のように失敗した。

$ tsc --noEmit
/Users/me/my-app/node_modules/typescript/lib/tsc.js:98439
                throw e;
                ^

Error: Debug Failure.
    at walk (/Users/me/my-app/node_modules/typescript/lib/tsc.js:98604:38)
    at Object.forEachChildRecursively (/Users/me/my-app/node_modules/typescript/lib/tsc.js:25492:27)
    at /Users/me/my-app/node_modules/typescript/lib/tsc.js:98520:20
    at runWithCancellationToken (/Users/me/my-app/node_modules/typescript/lib/tsc.js:98433:24)
    at getJSSyntacticDiagnosticsForFile (/Users/me/my-app/node_modules/typescript/lib/tsc.js:98517:20)
    at getSyntacticDiagnosticsForFile (/Users/me/my-app/node_modules/typescript/lib/tsc.js:98425:65)
    at /Users/me/my-app/node_modules/typescript/lib/tsc.js:98384:24
    at Object.flatMap (/Users/me/my-app/node_modules/typescript/lib/tsc.js:428:25)
    at getDiagnosticsHelper (/Users/me/my-app/node_modules/typescript/lib/tsc.js:98380:56)
    at Object.getSyntacticDiagnostics (/Users/me/my-app/node_modules/typescript/lib/tsc.js:98388:20)

Node.js v18.9.0

エラー文ではよく原因がわからなかったので ひとまず「tsc Error Debug Failure」などで検索すると、以下のIssueがヒットし、こんなコメントがあった。

For me the problem was coming from the js files in ./dist/bundles folder that was generated after running eas update, so I just excluded them "exclude": ["./dist"].

https://github.com/microsoft/TypeScript/issues/50675#issuecomment-1333529960

そういえば最近 eas update を初めて実行していた。
というわけで以下をtsconfig.jsonに追加。

  "exclude": ["./dist"]

これで再度実行すると、

$ tsc --noEmit -p tsconfig.json
✨  Done in 2.89s.

無事実行できました。

Discussion