Загрузка файлов конкретного поставщика с помощью Laravel Envoyer

Я пытаюсь загрузить на свой сервер только файлы определенных поставщиков, используя 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 захватывает все зависимости через композитор, таким образом захватывая из репозитория зависимостей, это здорово, но мне нужно иметь возможность устанавливать свои собственные версии некоторых из этих зависимостей.

Любые идеи


person Luna    schedule 23.02.2017    source источник
comment
Никогда, НИКОГДА не редактируйте файлы в папке поставщика. Серьезно, если вы сделали это, вы вступаете в целый мир боли и должны подумать о рефакторинге, чтобы избежать этого, а не пытаться бороться с хорошо зарекомендовавшей себя системой развертывания, которая почти полностью основана на том факте, что никто не редактирует файлы в папка продавца.   -  person Joe    schedule 28.02.2017
comment
Вместо того, чтобы редактировать файлы от вашего поставщика, попробуйте расширить пакет и, если это невозможно, разветвите проект и запустите свой собственный пакет.   -  person Camilo    schedule 28.02.2017


Ответы (1)


Как упоминалось в комментариях к самому вопросу, это довольно опасная ситуация, и вам было бы гораздо лучше расширить пакет или разветвить его, а затем использовать это.

При этом похоже, что у вас есть проблема с git: исключительно из-за ошибки, которую вы получаете, проблема выглядит так, как будто вы не включаете файлы модулей (вы действительно проверяли, что файлы модулей присутствуют? ) и еще что /home/forge/default/bootstrap/../vendor/autoload.php нет. На основании предоставленного вами .gitignore это правильно (вы игнорируете все файлы в поставщике--/vendor/*--и включаете только сам каталог--!/vendor--и подкаталог/файл misd--!/vendor/misd). Вам нужно либо включить /vendor/autoload.php--!/vendor/autoload.php--, либо вам нужно каким-то образом сгенерировать его постфактум.

person Guildencrantz    schedule 01.06.2017