1

当我的 Mac 使用 Git 提交代码时,它被 Husky 拒绝,我看到以下错误:

> git -c user.useConfigOnly=true commit --quiet --allow-empty-message --file -
.husky/_/husky.sh: line 23: sh: command not found
husky - pre-commit hook exited with code 127 (error)

终端或 VSCode 也会报告错误。

我怎样才能克服这个错误?

4

1 回答 1

2

这是关于github.com/typicode/husky/husky.sh#L23

sh -e "$0" "$@"

确保 sh 在你的$PATH(通常/bin/sh

添加一个echo "prg='$0'"到您的.husky/_/husky.sh只是为了调试并检查它是否是 '$0' 未找到(为空)

并检查 PATH 问题,问题 912

我使用 VS Code 和 Husky v6。

$PATH我从项目的根目录运行 echo 。
然后我将输出复制到目录中的pre-commit文件中.husky

我的预提交文件如下所示:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
npx lint-staged

正如OP所提到的,参考Husky/ Command not found~/.huskyrc应该正确设置NVM:

# ~/.huskyrc
# This loads nvm.sh and sets the correct PATH before running hook
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
于 2022-02-18T07:16:06.257 回答