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

Lun*_*una 8 git gitignore forge laravel-5 envoyer.io

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

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

/vendor/*
/node_modules
Homestead.yaml
Homestead.json
.env
Run Code Online (Sandbox Code Playgroud)

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

/vendor/*
/node_modules
Homestead.yaml
Homestead.json
.env
!/vendor
!/vendor/misd
Run Code Online (Sandbox Code Playgroud)

但是当我从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
Run Code Online (Sandbox Code Playgroud)

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

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

有任何想法吗

Gui*_*ntz 0

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

话虽这么说,看起来确实有一个 git 问题:仅根据您遇到的错误,问题似乎不是您没有包含模块文件(您实际上检查过模块文件是否存在吗? )以及更多/home/forge/default/bootstrap/../vendor/autoload.php不存在的内容。根据.gitignore您提供的信息,这是正确的(您忽略供应商中的所有文件 -- /vendor/*-- 并且仅包含目录本身!/vendor-- -- 和子目录/文件misd-- !/vendor/misd)。您要么需要包含/vendor/autoload.php-- !/vendor/autoload.php--,要么需要在事后以某种方式生成它。