Git post-receive hook 未找到 env:节点:没有这样的文件或目录

问题描述 投票:0回答:1

我知道问题所在,但不知道如何解决。我的问题是,当我运行脚本

post-receive
时,出现错误
env: node: No such file or directory

我认为这可能是因为它是一个非交互式外壳,我应该更改

$PATH
,但我还不够了解,不知道我需要做什么。当我获取文件时,
npm
工作没有任何问题。仅当我远程调用其他地方的脚本时才会发生。

我正在使用 homebrew、nodev8 和 postgres。我也有nvm管理节点。

这是我的脚本:

#!/usr/bin/env bash

. $NVM_DIR/nvm.sh

echo 'post-receive: Triggered.'

cd /Users/david/Development/abba/live/404

echo 'post-receive: git check out...'

git --git-dir=/Users/david/Development/abba/404.git --work-tree=/Users/david/Development/abba/live/404 checkout master -f

/Users/david/.nvm/v8.15.0/bin/npm install && echo 'post-receive: -> done.'

环境:

which node
# /Users/david/.nvm/v8.15.0/bin/node

echo $PATH
# /Users/david/.nvm/v8.15.0/bin:/usr/local/opt/node@8/bin:/usr/local/opt/node@8/bin:/usr/local/opt/node@8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/opt/node@8/bin:/usr/local/opt/node@8/bin

.bash_profile

export PATH="/usr/local/opt/node@8/bin:"

export NVM_DIR="/Users/david/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
node.js bash git
1个回答
2
投票

在尝试让 git post-receive hook 触发构建步骤时,我遇到了同样的问题。就我而言,我通过将节点二进制文件符号链接到 /usr/bin/folder

解决了这个问题
ln -s `which node` /usr/bin/node

我发现了一个 github 问题,这里有类似的错误:https://github.com/animetosho/Nyuu/issues/14

在那期他们使用了

ln -s /usr/bin/nodejs /usr/bin/node

© www.soinside.com 2019 - 2024. All rights reserved.