我和哈士奇一起工作已经好几年了。我们开始了一个新项目,并确保添加 husky 进行预提交和提交消息检查。但这次我们在 Windows 机器上遇到了一些问题。
我们在项目中使用mac配置了哈士奇。当我们添加拥有 Windows 机器的新开发人员时,提交时出现错误。
我们有,
.husky/pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged
.husky/commit-msg
#!/bin/sh
echo $(dirname "$0")
. "$(dirname "$0")/_/husky.sh"
npx --no-install commitlint --edit $1
.husky/_/husky.sh
#!/usr/bin/env sh
if [ -z "$husky_skip_init" ]; then
debug () {
if [ "$HUSKY_DEBUG" = "1" ]; then
echo "husky (debug) - $1"
fi
}
readonly hook_name="$(basename -- "$0")"
debug "starting $hook_name..."
if [ "$HUSKY" = "0" ]; then
debug "HUSKY env variable is set to 0, skipping hook"
exit 0
fi
if [ -f ~/.huskyrc ]; then
debug "sourcing ~/.huskyrc"
. ~/.huskyrc
fi
readonly husky_skip_init=1
export husky_skip_init
sh -e "$0" "$@"
exitCode="$?"
if [ $exitCode != 0 ]; then
echo "husky - $hook_name hook exited with code $exitCode (error)"
fi
if [ $exitCode = 127 ]; then
echo "husky - command not found in PATH=$PATH"
fi
exit $exitCode
fi
.husky
文件夹内的文件。 预提交文件工作正常,没有任何问题。 但如果使用 commit-msg,我们会收到以下错误
error: cannot spawn .husky/commit-msg: No such file or directory
它甚至没有被调用。
有人遇到过这个问题吗?有没有办法解决这个问题?
注意:请不要建议
--no-verify
,因为它与我们试图实现的相反。
我花了两天时间试图解决这个问题。解决办法很简单。
解决方案:
删除了
.husky/commit-msg
开头的空行。
就我而言,我使用 yarn 而不是使用 npm 解决了这个问题。