Почему Composer устанавливает каталоги .git или .hg с файлами пакетов?
Я пытаюсь опубликовать пакет композитора. Я сохранил composer.json
в моем каталоге пакетов:
{
"name": "vendor_name/my_bundle",
"type": "symfony-bundle",
"autoload": {
"psr-0": {
"VendorName\\MyBundle": ""
}
},
"target-dir": "VendorName/MyBundle"
}
Но когда я его установлю (обновление для композитора), файлы пакетов будут добавлены в каталог .hg.
Аналогичное поведение можно увидеть в этом пакете: https://packagist.org/packages/tom32i/file-bundle (с файлами пакетов будет добавлен каталог .git: http://joxi.ru/uploads/prod/20130201/560/53a/136c5290b3c0f4c6f6318445f358d1d8cf30fe13.png)
Ответы
Ответ 1
Цитата из документации:
Существует два способа загрузки пакета: source и dist. Для стабильных версий композитор будет использовать dist по умолчанию. Источник - это репозиторий управления версиями.
Пакет, который вы упомянули, не имеет стабильной версии, поэтому композитор загружает источник из git. Используйте --prefer-dist
, если вы хотите, чтобы композитор загружал файлы пакетов (только если это возможно).
Ответ 2
Ответ Jakub отлично подходит и полностью гвоздивает решение...
Чтобы навсегда указать версию dist
, просто добавьте preferred-install
в ваш файл composer.json:
{
"config": {
"preferred-install": "dist"
}
}