🕳

VSCode git で husky の lint-staged がエラーになる問題(npm command not found)

2022/08/26に公開

現象

文章を書く系のリポジトリを構築して、文章フォーマットチェックのために markdownlint-clitextlint などを投入し、 husky + lint-staged でコミット時にチェックを走らせようとしたところ、 git commit では実行されるのに VSCode の git ではエラーが発生してしまう。
発生エラーは npm command not found 。(スクショし忘れた。)

環境

  • macOS (BigSur) 11.6.2 Intel
  • VSCode 1.70.2
  • node 16.14.0 (from nodenv)
  • husky 7.0.4
    • セットアップは automatic で済ませた

今回は VSCode での発現ですが、SourceTree などの GUI 系 git でも発生するとのこと。

原因と解決策

npm コマンドがないということなので、パスが通ってないのだろうと推測。
husky でパスを通すには .huskyrc にて設定する。

.huskyrc
# for node installed by brew
PATH="/usr/local/bin:$PATH"
# for node installed by nodenv
PATH="$HOME/.nodenv/bin:$PATH"

.huskyrc 追加後、VSCode を再起動する(大事)

その他メモ

  • 問題にぶつかって色々と調べた際、 husky v4 や v5 の記事や issue ばかりがヒットしてうーん…となってしまった。
    • みんな最近は困ってないのか…?
    • 公式に Command not found のトラブルシューティングがあるからみんな自力でやってるんだな🤔

Discussion