huskyとlint-stagedを使用して、pre-commit時にtscを実行するとエラーになっていたので、解決方法を記録します。
エラー内容
数十行のエラーが出てきますが、内容は主に以下でした。
node_modules/next/dist/client/image.d.ts(1,8): error TS1259: Module '"/Users/xxx/node_modules/@types/react/index"' can only be default-imported using the 'esModuleInterop' flag
src/pages/index.tsx(12,7): error TS17004: Cannot use JSX unless the '--jsx' flag is provided.
解決方法
huskyからtscを実行した場合、tsconfigファイルが検知されずエラーになるため、bashを通してtscを実行します。
通常は以下のように書くところを、
{
"lint-staged": {
"*.{ts,tsx}": [
"yarn check-types",
]
}
}
こちらのように変更します↓
{
"lint-staged": {
"*.{ts,tsx}": [
"bash -c 'yarn check-types'"
]
}
}