快速解释:我有一个登台和一个生产服务器,两者都使用相同的部署脚本(唯一的区别是克隆的 repo 分支)。部署脚本运行bower install
,它全局安装在两台服务器上。
为了全局安装它,我更改npm config set prefix
为/home/forge/.npm-packages
然后运行npm install -g bower
(sudo
不需要注意,这就是更改前缀的重点)。再一次,这是在两台服务器上完成的。
当我ssh
进入每台服务器并运行bower -v
时,which bower
很明显该命令确实存在,并且它已添加到PATH
env。两台服务器的输出相同。
bower install
在项目根目录上手动运行适用于两个服务器。
问题是 forge 部署脚本,它只会在生产中失败(IKR?我不知道我在期待什么)。
实际输出为:
/home/forge/.forge/provision-2394191.sh: line 8: bower: command not found
有趣的是,在我尝试调试的过程中,我手动运行provision-2394191.sh
并且它工作正常。
我的生产服务器出了什么问题?