Я знаю, что приведенный ниже сценарий далек от современных лучших практик, но давайте попробуем.
Давайте предположим, что:
Насколько вероятно, что: некоторые пакеты не будут работать из-за переключения ОС И сбоя можно было бы избежать, если бы они были установлены из файла компоновщика json на сервере (то есть они не полностью зависят от платформы)?
Я знаю из этого вопрос что абсолютные пути, установленные во время установки, могут быть проблемой. Есть ли другие возможные проблемы?
Вероятность довольно высока, потому что композитор будет работать по-разному в зависимости от настроек среды.
Простой пример этого будет https://getcomposer.org/doc/articles/scripts.md
который может запускать пользовательскую логику в зависимости от установленных компонентов и готовить что-то только в том случае, если в хост-системе есть что-то доступное, которое не имеет никакого отношения к composer.lock
Основная проблема заключается в том, что вы хотите повторно использовать папку поставщика. Композитор не работает таким образом, и именно поэтому vendor
часто упоминается в файле .gitignore.
composer будет вести себя по-разному в зависимости от среды, и его результат не должен копироваться.
Если вы хотите привести поведение в соответствие между ОС, используйте Docker или vagrant для стабилизации приложения и его среды.
Они должны быть независимы от ОС, пока вы фиксируете composer.lock
в ваш проект. Точка composer.lock
это установить те же пакеты по composer install
не зависит от ОС, а сам Composer не использует никаких абсолютных путей (по умолчанию). На самом деле композиторы сопровождающие не рекомендуется использовать его в производстве и многие проблемы были закрыты с помощью «Composer не инструмент развертывания» в качестве причины. Таким образом, вы должны иметь возможность перемещать установки между средами, и в каждой системе вы будете получать одинаковые пакеты, установленные composer install
,
Единственные проблемы могут исходить от скрипты и / или плагины, что может делать некоторые вещи, которые не переносимы, и вам нужно запустить его на целевой установке.
Итак, вкратце: Да, установки не зависят от ОС (если вы не сделаете что-то, это изменит это).