🍣
huskyを使っているプロジェクトでVSCodeのGUIからコミットしようとしたときにエラーが出た
タイトル通りでこのアラートが出た。
コマンド出力を表示するとこちらが出ていた。
> git -c user.useConfigOnly=true commit --quiet --allow-empty-message --file -
Volta error: Node is not available.
To run any Node command, first set a default version using `volta install node`
Error details written to /Users/.volta/log/volta-error-2024-01-19_09_31_46.067.log
husky - pre-commit hook exited with code 126 (error)
nodenvでnodeのバージョン管理をしていた。huskyはvoltaを使おうとしてエラーが出ていた模様。なのでvoltaでnodeのバージョンを指定してみたら下記エラーが出た。
> git -c user.useConfigOnly=true commit --quiet --allow-empty-message --file -
Internal Error: hoge@workspace:.: This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile
at $b.getCandidates (/Users/.volta/tools/image/yarn/4.0.2/bin/yarn.js:205:8149)
at vd.getCandidates (/Users/.volta/tools/image/yarn/4.0.2/bin/yarn.js:141:1311)
at /Users/.volta/tools/image/yarn/4.0.2/bin/yarn.js:210:8409
at Wy (/Users/.volta/tools/image/yarn/4.0.2/bin/yarn.js:140:53920)
at ke (/Users/.volta/tools/image/yarn/4.0.2/bin/yarn.js:210:8389)
at async Promise.allSettled (index 0)
at async Uc (/Users/.volta/tools/image/yarn/4.0.2/bin/yarn.js:140:53248)
at async /Users/.volta/tools/image/yarn/4.0.2/bin/yarn.js:210:9140
at async Qi.startProgressPromise (/Users/.volta/tools/image/yarn/4.0.2/bin/yarn.js:140:137288)
at async St.resolveEverything (/Users/.volta/tools/image/yarn/4.0.2/bin/yarn.js:210:7138)
husky - pre-commit hook exited with code 1 (error)
公式の解消法
公式で解消法があったのでこちらを参考にhuskyでもnodenvを使うようにしてみる。
そして~/.huskyrc
を下記のようにすると解消できた🎉
# Export nodenv path
export PATH="/opt/homebrew/bin/:$PATH"
# Initialize nodenv
eval "$(nodenv init -)"
# Use .node-version file to set node version
if [ -f ".node-version" ]; then
nodenv local
fi
Discussion