使用Laravel的Envoyer上传特定供应商文件

时间:2017-02-23 12:17:01

标签: git laravel-5 gitignore forge envoyer.io

我正在尝试使用Laravel Forge仅将特定供应商文件上传到我的服务器。 原因是因为我在一些依赖项中编辑了代码,现在发生的是我的网站的某些功能正在破坏,因为当我从Envoyer推送到我的服务器时,Envoyer正在从我的GitHub仓库中获取。

我的GitHub repo不包含供应商目录,因为它不应该因为我将该目录添加到我的gitignore文件

/vendor/*
/node_modules
Homestead.yaml
Homestead.json
.env

我已经尝试过白色列出目录中的某些文件夹,如下所示:

/vendor/*
/node_modules
Homestead.yaml
Homestead.json
.env
!/vendor
!/vendor/misd

但是当我从Envoyer部署到我的服务器后,我的网站停止工作并收到错误消息

Warning: require(/home/forge/default/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /home/forge/default/bootstrap/autoload.php on line 17

我尝试将autoload.php文件包含在白名单中,但在部署后仍然收到类似消息

如何上传我的依赖项版本(我编辑的依赖项)。 现在发生的事情是,Envoyer正在通过编辑器抓取所有依赖项,从而从依赖项repo中获取,这很好但是,我需要能够安装我自己的某些依赖项版本

任何想法

1 个答案:

答案 0 :(得分:0)

正如对问题本身的评论中所提到的,这是一个非常危险的情况,你可以更好地扩展包裹或分叉,然后再使用它。

有人说它确实看起来像你有一个git问题:完全根据错误你会发现问题,好像它不是你不包含模块文件(你真的检查过模块文件是否存在?)以及/home/forge/default/bootstrap/../vendor/autoload.php不存在的更多内容。基于您提供的.gitignore这是正确的(您忽略供应商中的所有文件 - /vendor/* - 并且只包括目录本身 - !/vendor - 和子目录/文件misd - !/vendor/misd)。您需要包含/vendor/autoload.php - !/vendor/autoload.php - 或者您需要在事实之后生成它。