web-dev-qa-db-ja.com

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: 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.0for Node.js、および1.8.0_201 for my Java JDK and JRE。私が使用しているJHipsterのバージョンは5.8.1

コミットのエラーを取り除くために32行目を含め、このファイルで変更する必要があるものはありますか?

Visual StudioコードIDEを使用している場合も、それが役に立ちます。

前もって感謝します。

5
James

@Stephen Savitzkyが示唆したように、Nodeインストールの問題である可能性があります。ただし、

  1. 問題なくアプリケーションを通常どおり実行します。
  2. 端末からgit commitを実行しても問題はありません

次に、おそらくそれはNodeソーシングの問題です。それへのパスは、端末やVSCのようなGUIアプリとは異なる可能性があるためです。

セットアップでは、プリコミットフックにhuskyを使用しているようです。正しいNodeバージョンを使用するには、~/.huskyrc as ドキュメントで推奨

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

次に、Node NVM(使用している場合)または別のソースからソースを取得できます。これは、huskyフックスクリプトが起動したときに実際に何が起こっているかをデバッグするための良い方法でもあります。

0
Vladimir Salin