windows 上的 Git 挂钩无法识别节点
Node not reconized with Git hook on windows
我正在使用 Husky (7.0.0) 在现有电子项目(Windows 上)设置预提交挂钩。要安装 Husky,我按照文档 (here) 进行操作,并且使用以下两个文件正确创建了 .husky 文件夹:
husky.sh
#!/bin/sh
if [ -z "$husky_skip_init" ]; then
debug () {
if [ "$HUSKY_DEBUG" = "1" ]; then
echo "husky (debug) - "
fi
}
readonly hook_name="$(basename "[=12=]")"
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
export readonly husky_skip_init=1
sh -e "[=12=]" "$@"
exitCode="$?"
if [ $exitCode != 0 ]; then
echo "husky - $hook_name hook exited with code $exitCode (error)"
fi
exit $exitCode
fi
并预提交:
#!/bin/sh
. "$(dirname "[=13=]")/_/husky.sh"
npm test
所以现在在提交测试脚本之前应该是 运行(测试脚本只包含 运行ning jest,即“test”:“jest”)。但是当我 运行 git 提交(从终端)时,它失败并输出:console output。
错误消息指出 git 无法找到节点,但看起来真正奇怪的是输出的前两行,这表明开玩笑实际上是 运行。我正在使用节点 18.0.0(通过 nvm-windows 管理)和 npm 7.24.2(这两个都在 windows terminal and in git bash 中得到确认)。
节点的路径已经在我的 $PATH 环境变量中。
如果我可以添加任何详细信息,请告诉我
之前报道过(typicode/husky
issue 980), referring to the "Command not found”文档
如果你的~/.huskyrc
内容是正确的,应该设置路径。
检查是否将 pre-commit 中的 npm test
替换为 echo $Path
(受 issue 462 启发)。
我发现了我的问题,我的环境变量列表中有一个双引号,它使以下所有路径无效(其中有 nodejs 路径)。为了理解这件事,我手动 运行 通过 git bash 命令并列出了 PATH 环境变量。无论如何,还有一些我无法理解的东西,在 git bash if i 运行 npm -v
它显示了正确的节点版本,但试图 运行 其他命令导致错误
我正在使用 Husky (7.0.0) 在现有电子项目(Windows 上)设置预提交挂钩。要安装 Husky,我按照文档 (here) 进行操作,并且使用以下两个文件正确创建了 .husky 文件夹: husky.sh
#!/bin/sh
if [ -z "$husky_skip_init" ]; then
debug () {
if [ "$HUSKY_DEBUG" = "1" ]; then
echo "husky (debug) - "
fi
}
readonly hook_name="$(basename "[=12=]")"
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
export readonly husky_skip_init=1
sh -e "[=12=]" "$@"
exitCode="$?"
if [ $exitCode != 0 ]; then
echo "husky - $hook_name hook exited with code $exitCode (error)"
fi
exit $exitCode
fi
并预提交:
#!/bin/sh
. "$(dirname "[=13=]")/_/husky.sh"
npm test
所以现在在提交测试脚本之前应该是 运行(测试脚本只包含 运行ning jest,即“test”:“jest”)。但是当我 运行 git 提交(从终端)时,它失败并输出:console output。 错误消息指出 git 无法找到节点,但看起来真正奇怪的是输出的前两行,这表明开玩笑实际上是 运行。我正在使用节点 18.0.0(通过 nvm-windows 管理)和 npm 7.24.2(这两个都在 windows terminal and in git bash 中得到确认)。 节点的路径已经在我的 $PATH 环境变量中。 如果我可以添加任何详细信息,请告诉我
之前报道过(typicode/husky
issue 980), referring to the "Command not found”文档
如果你的~/.huskyrc
内容是正确的,应该设置路径。
检查是否将 pre-commit 中的 npm test
替换为 echo $Path
(受 issue 462 启发)。
我发现了我的问题,我的环境变量列表中有一个双引号,它使以下所有路径无效(其中有 nodejs 路径)。为了理解这件事,我手动 运行 通过 git bash 命令并列出了 PATH 环境变量。无论如何,还有一些我无法理解的东西,在 git bash if i 运行 npm -v
它显示了正确的节点版本,但试图 运行 其他命令导致错误