3

快速解释:我有一个登台和一个生产服务器,两者都使用相同的部署脚本(唯一的区别是克隆的 repo 分支)。部署脚本运行bower install,它全局安装在两台服务器上。

为了全局安装它,我更改npm config set prefix/home/forge/.npm-packages然后运行npm install -g bowersudo不需要注意,这就是更改前缀的重点)。再一次,这是在两台服务器上完成的。

当我ssh进入每台服务器并运行bower -v时,which bower很明显该命令确实存在,并且它已添加到PATHenv。两台服务器的输出相同。

bower install在项目根目录上手动运行适用于两个服务器。

问题是 forge 部署脚本,它只会在生产中失败(IKR?我不知道我在期待什么)。

实际输出为:

/home/forge/.forge/provision-2394191.sh: line 8: bower: command not found

有趣的是,在我尝试调试的过程中,我手动运行provision-2394191.sh并且它工作正常。

我的生产服务器出了什么问题?

4

1 回答 1

3

似乎将新的添加/home/forge/.npm-packages$PATH使用export中是不够的。为了解决这个问题,我不得不手动将它添加到/etc/environment文件中。

于 2015-09-05T05:53:14.740 回答