9

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

我的 GitHub 存储库不包含供应商目录,因为它不应该包含该目录,因为我已将该目录添加到我的 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 正在通过 composer 获取所有依赖项,因此从依赖项 repo 中获取,这很好,但是我需要能够安装我自己的一些依赖项版本

有任何想法吗

4

1 回答 1

0

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

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

于 2017-06-01T22:25:27.667 回答