【husky/lint-staged】tscを実行するとエラーになる

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'"
    ]
  }
}
タイトルとURLをコピーしました