web-dev-qa-db-fra.com

La validation échoue dans la pré-validation des hooks Git car la commande node n'a pas été trouvée

J'ai généré une application JHipster avec Angular et Java, à l'intérieur d'un référentiel que j'avais précédemment créé. J'ai ensuite généré quelques classes JDL avec elle et la construction a réussi, mais quand j'ai essayé de valider mon changements dans GitHub, il a jeté l'erreur suivante:

Commit failed - exit code 1 received, with output: '.git/hooks/pre-commit: line 32: node: command not found'

J'ai regardé à l'intérieur de mon fichier de pré-commit:

#!/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

L'erreur était à la ligne 32:

node "$scriptPath" $hookName "$gitParams"

Je ne connais pas les fichiers de pré-validation ni leur fonctionnement, mais j'ai actuellement v10.15.0pour Node.js et 1.8.0_201 pour mon Java JDK et JRE. La version de JHipster que j'utilise est 5.8.1.

Y a-t-il quelque chose que je devrais changer dans ce fichier, y compris la ligne 32 afin de me débarrasser de l'erreur dans ma validation?

J'utilise également le code Visual Studio IDE si cela aide du tout.

Merci d'avance.

5
James

Comme l'a suggéré @Stephen Savitzky, il peut s'agir d'un problème d'installation Node. Cependant, si vous pouvez

  1. Exécutez l'application normalement sans problème, et aussi
  2. Aucun problème lors de la validation de git depuis le terminal

Ensuite, c'est probablement Node problème d'approvisionnement car les chemins d'accès à celui-ci peuvent être différents des terminaux ou des applications GUI comme VSC.

Votre configuration semble utiliser husky pour les hooks de pré-validation, donc pour vous assurer que vous disposez de la bonne Node, vous pouvez ajouter ~/.huskyrc comme suggéré dans la documentation :

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

Ensuite, vous pouvez source Node à partir de NVM (si vous en utilisez une) ou d'une autre source. C'est également un bon moyen de déboguer ce qui se passe réellement lorsque husky les scripts de hook démarrent.

0
Vladimir Salin