Closed2

husky + lint staged でコミット時に型チェックをする

d3d3

package.json の npm scripts に以下を設定している

"types:check": "tsc --pretty --noEmit",

これを husky でコミット時に実行したかったので、 lint-staged.config.js を以下のように書いていたが

module.exports = {
  '*.{ts,tsx}': [
    'pnpm run lint',
    'pnpm run types:check',
    'pnpm run format:check',
  ],
}

*.tsx で以下のようなエラーが出てしまう

error TS17004: Cannot use JSX unless the '--jsx' flag is provided.
d3d3

husky から tsc を実行した場合、.tsconfig.json を検知できないのが原因らしい。
関数で書く方法があるようなので、以下の様にすると行けた:

module.exports = {
  '*.{ts,tsx}': [
    'pnpm run lint',
    () => 'pnpm run types:check',
    // 'pnpm run types:check',
    'pnpm run format:check',
  ],
}
このスクラップは2023/01/05にクローズされました