Я экспериментирую с Composer и, исходя из фона RubyGems/Bundler, проявляет интересное поведение.
Я попытался создать новый проект Laravel, и, к моему удивлению, я обнаружил, что в итоге у меня есть папка поставщика, размер которой превышает 70 мегабайт.
В то время как Laravel действительно предлагает много функциональности, я обнаружил, что размер будет странным, поэтому я просмотрел содержимое папки поставщика и обнаружил, что он содержит не только код, но также модульные тесты, документацию и целые истории git, Для Swiftmailer я даже нашел llghty RFC для различных стандартов электронной почты.
В то время как удобно обращаться к спецификациям и истории хранилища для зависимостей, он создает довольно трудоемкий процесс развертывания и помещает производственный сервер с нерелевантными данными.
Я понимаю, что я, вероятно, мог бы написать команду artisan для "создания" приложения и удаления пыли из зависимостей, запустив все истории git, но это похоже на грязное решение проблемы, которая, вероятно, уже решена.
Итак, возникает вопрос: существует ли подход к установке зависимостей композитора, поэтому загружается только код, необходимый для запуска приложения (Laravel)?
Обновление: с помощью --prefer-dist
Я обнаружил, что вы можете передать параметр --prefer-dist
при создании нового проекта .e.g
composer create-project laravel/laravel my-new-project --prefer-dist
Это делает Composer предпочтительным для zip-дистрибутивов по получению источника непосредственно из VCS (например, GitHub)
Это избавляет вас от истории git и уменьшает папку поставщика до 17 мегабайт. Однако спецификации, документация, например. все еще включен. Так что было бы неплохо, если бы был способ отбросить его до нескольких мегабайт.