由于未找到node命令,在Git挂钩中提交失败,原因是未提交
我在以前创建的存储库中用Angular和Java生成了JHipster应用程序。然后,我用它生成了一些JDL类,并且构建成功,但是当我尝试在GitHub中提交更改时,它引发了以下错误:
Commit failed - exit code 1 received, with output: '.git/hooks/pre-commit: line 32: node: command not found'
我查看了我的预提交文件:
#!/bin/sh
# husky
# Hook created by Husky
# Version: 1.3.1
# At: 2/13/2019, 12:10:11 PM
# See:
# From npm package
# Name: husky
# Directory: undefined
# Homepage:
scriptPath="JHipsterProject/node_modules/husky/run.js"
hookName=`basename "$0"`
gitParams="$*"
debug() {
[ "${HUSKY_DEBUG}" = "true" ] && echo "husky:debug $1"
}
debug "$hookName hook started..."
if [ -f "$scriptPath" ]; then
# if [ -t 1 ]; then
# exec < /dev/tty
# fi
if [ -f ~/.huskyrc ]; then
debug "source ~/.huskyrc"
source ~/.huskyrc
fi
node "$scriptPath" $hookName "$gitParams"
else
echo "Can't find Husky, skipping $hookName hook"
echo "You can reinstall it using 'npm install husky --save-dev' or delete this hook"
fi
错误在第32行:
node "$scriptPath" $hookName "$gitParams"
我不熟悉预提交文件或它们如何工作,但是我目前对Node.js具有v10.15.0
,对于Java JDK和JRE具有1.8.0_201
。我正在使用的JHipster的版本为5.8.1
。
此文件中是否应该更改任何内容,包括第32行,以便消除提交中的错误?
如果有帮助的话,我也在使用Visual Studio Code IDE。
提前感谢。
回答如下:“节点:未找到命令”表示node
中的任何目录上都没有名为$PATH
的程序,该环境变量告诉Shell在哪里寻找程序。挂钩通常在$PATH
受到严格限制的情况下运行;例如/bin:/usr/bin
。
处理此问题的最佳方法是对/bin
或/usr/bin
中未安装的任何程序使用绝对路径。您可以找出要使用which
命令使用的路径:
> which node
/home/steve/.nvm/versions/node/v10.6.0/bin/node
当然,也有可能根本没有在运行挂钩的计算机上完全安装节点。