git hook post收到找不到环境:节点:没有这样的文件或目录

时间:2019-02-15 22:13:29

标签: node.js bash git

我知道问题出在哪里,但我不知道如何解决。我的问题是当我运行脚本/ post-recieve时。我收到错误env: node: No such file or directory。我认为可能是因为它是一个非交互式外壳。而且我应该更改$ PATH,但是我对了解我需要做的事情还不够了解。当我获取文件时,npm可以解决任何问题。仅当我远程调用该脚本时才会发生。

所以我正在使用自制的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.'

哪个节点/Users/david/.nvm/v8.15.0/bin/node

$ 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

1 个答案:

答案 0 :(得分:1)

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

解决了该问题。
pod 'Alamofire', ~>'4.8.2'

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

在该问题中,他们使用了 ln -s `which node` /usr/bin/node