🕳
VSCode git で husky の lint-staged がエラーになる問題(npm command not found)
現象
文章を書く系のリポジトリを構築して、文章フォーマットチェックのために markdownlint-cli や textlint などを投入し、 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