由于找不到节点命令,在 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: https://github.com/typicode/husky#readme

# From npm package
#   Name: husky
#   Directory: undefined
#   Homepage: https://github.com/typicode/husky#readme

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"

我不熟悉预提交文件或它们如何工作,但我目前有 v10.15.0 用于 Node.js,以及 1.8.0_201 用于我的 Java JDK 和 JRE。我使用的 JHipster 版本是 5.8.1

我应该在这个文件中更改什么,包括第 32 行,以消除我提交中的错误?

如果有帮助的话,我也在使用 Visual Studio Code IDE。

提前致谢。

原文由 James 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 675
1 个回答

正如@Stephen Savitzky 所建议的,这可能是节点安装问题。但是,如果您能够

  1. 正常运行应用程序没有问题,并且
  2. 从终端执行 git 提交时看不到任何问题

然后,它可能是节点采购问题,因为它的路径可能与终端或 VSC 等 GUI 应用程序不同。

您的设置似乎使用 husky 作为预提交挂钩,因此为确保您拥有正确的节点版本,您可以添加 ~/.huskyrc文档中所建议

 # ~/.huskyrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

然后,您可以从 NVM(如果您使用一个)或其他来源获取 Node。这也是调试 husky 钩子脚本启动时实际发生的事情的好方法。

原文由 Vladimir Salin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题