I have been working with husky for few years now. We started a new project and was sure to add husky for pre-commit and commit-msg linting. But this time we faced some issue in the windows machine.
We configured the husky in the project using a mac. When we added new dev who has a windows machine, there was error in commiting.
we have,
.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
files inside the .husky
folder.
the pre-commit file works just fine without any issue.
but we get following error in case of commit-msg
error: cannot spawn .husky/commit-msg: No such file or directory
it is not even getting invoked.
does anyone encountered this issue ? Is there any fix for this?
NB : Please don't suggest --no-verify
as it does the opposite of what we are trying to implement.
I lost two day trying to fix this issue. The solution is very simple.
Solution :
Removed the empty line at the beginning in .husky/commit-msg
.