运行预提交的husky脚本时找不到Npx



环境

  • 节点安装在~/node-v14.15.3-linux-x64/bin/node中,并且已经在PATH变量中设置
  • VSCode 1.55.2

问题

每次我试图提交代码中的更改时,我都会得到:

.husty/pre-commit:4:npx:未找到husky-预提交挂钩退出,代码127(错误(

代码

  • husty.sh
#!/bin/sh
if [ -z "$husky_skip_init" ]; then
debug () {
[ "$HUSKY_DEBUG" = "1" ] && echo "husky (debug) - $1"
}
readonly hook_name="$(basename "$0")"
debug "starting $hook_name..."
if [ "$HUSKY" = "0" ]; then
debug "HUSKY env variable is set to 0, skipping hook"
exit 0
fi
if [ -f ~/.huskyrc ]; then
debug "sourcing ~/.huskyrc"
. ~/.huskyrc
fi
export readonly husky_skip_init=1
sh -e "$0" "$@"
exitCode="$?"
if [ $exitCode != 0 ]; then
echo "husky - $hook_name hook exited with code $exitCode (error)"
exit $exitCode
fi
exit 0
fi
  • 预提交文件
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged
npx lint-staged

我尝试了什么

  • settings.json中添加此"terminal.integrated.inheritEnv": false,
  • 导出节点&.huskyrc中的npx如下所示:
export NODEJS_HOME="$HOME/node-v14.15.3-linux-x64/bin"
export NPX_Dir="$HOME/node-v14.15.3-linux-x64/bin/npx"

但都没用

注意使用git commit从vscode的终端提交更改时,预提交脚本正常运行。

文档声明:

您可以在终端中回显$PATH,并将应用程序配置为使用相同的值。


那么,我该怎么做呢?

最近遇到此问题。此错误".hsky/pre-commit:4:npx:未找到husky-pre-commit钩子已退出,代码为127(错误("是因为我的系统上没有安装节点。我建议试试这个https://www.newline.co/@Adele/如何在macos上安装nodejs和npm--22782681

我的.zshrc包含

export PATH="/opt/homebrew/opt/node@16/bin:$PATH"

它将添加我的节点到我的PATH中,作为zsh配置过程的一部分。

所以我只是将同一行复制并放置到.huskyrc文件中

$ echo 'export PATH="/usr/local/opt/node@10/bin:$PATH"' >> ~/.huskyrc

最新更新