Сбой фиксации в предварительной фиксации Git-хуков, потому что команда узла не найдена - PullRequest
0 голосов
/ 13 февраля 2019

Я создал приложение JHipster с Angular и Java внутри репозитория, который я сделал ранее.Затем я сгенерировал несколько классов 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 для узла.js и 1.8.0_201 для моих Java JDK и JRE.Я использую версию JHipster 5.8.1.

Что мне следует изменить в этом файле, включая строку 32, чтобы избавиться от ошибки в моем коммите?

Я также использую Visual Studio Code IDE, если это вообще помогает.

Заранее спасибо.

1 Ответ

0 голосов
/ 14 февраля 2019

«узел: команда не найдена» означает, что в любом из каталогов в $PATH нет программы с именем node, переменной среды, которая сообщает оболочке, где искать программы.Крючки обычно работают с очень ограниченным $PATH;Например, /bin:/usr/bin.

Лучший способ справиться с этим - использовать абсолютный путь для любых программ, которые не установлены ни в /bin, ни в /usr/bin.Вы можете узнать, какой путь использовать с командой which:

> which node
/home/steve/.nvm/versions/node/v10.6.0/bin/node

Конечно, также возможно, что узел вообще не установлен на машине, на которой работает ловушка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...