Как требовать вилку с композитором
вот мой композитор.json, я хочу использовать вилку Nodge проекта lessphp на Github
"repositories": [{
"type": "package",
"package": {
"version": "dev-master",
"name": "nodge/lessphp",
"source": {
"url": "https://github.com/Nodge/lessphp.git",
"type": "git",
"reference": "master"
},
"autoload": {
"classmap": ["lessc.inc.php"]
}
}
}],
"require": {
"php": ">=5.3.3",
"nodge/lessphp": "dev-master"
},
но у меня есть эта ошибка, когда я делаю обновления :
nodge / lessphp dev-master -> соответствующий пакет не найден.
Я не знаю, как правильно требовать эту вилку...
какие предложения ?
6 ответов:
наиболее распространенный (и более простой) способ сделать это-использовать репозиторий VCS.
все, что вам нужно сделать, это добавить вилку в качестве репозитория и обновить ограничение версии для указания на пользовательскую ветвь. Ваша пользовательская ветвь имя должны будет начинаться с
dev-.пример предполагая, что вы исправили монолог, чтобы исправить ошибку в ветке исправления:
{ "repositories": [ { "type": "vcs", "url": "https://github.com/igorw/monolog" } ], "require": { "monolog/monolog": "dev-bugfix" } }обратите внимание, что вы не меняете инструкцию require за исключением указания ветки исправления ошибок. Вы все еще ссылаетесь на восходящий пакет (
monolog/monolog),не ваша личная вилка (igorw/monolog). Вы можете прочитать подробности в документах
использование VCS работает:
"name": "test/test", "repositories": [{ "type": "vcs", "url": "http://github.com/Nodge/lessphp" }], "require": { "leafo/lessphp": "dev-master" },но если мне нужен модуль, который имеет это
composer.json, это не сработает. Он устанавливает исходный проект, а не вилку.пример
"name": "example/example", "require": { "test/test": "dev-master" },Я должен еще раз упомянуть репозиторий. Это нормально?
Если вы не можете получить ответ @Neilime, чтобы работать на вас, убедитесь, что ваша вилка использует другую ветвь.
например, нажмите ваши изменения в ветку на вилке под названием
my-bugfix, Не добавилdev-префикс в имени вашей ветви, но в вашем композиторе.json вы должны добавить его. Ваш файл composer будет выглядеть так:"repositories": [ { "type": "vcs", "url": "http://github.com/yourname/packageName" } ], "require": { "owner/packageName": "dev-my-bugfix" },
согласно документации композитора http://getcomposer.org/doc/05-repositories.md#vcs, этого достаточно, чтобы укажите исходный репозиторий (не вилку) в
require("nodge/lessphp" в вашем случае). Затем Composer установит вашу вилку (посмотрите на код в поставщиках)
обычно я добавляю узел "dist" в определение пакета. У меня никогда не было проблем с его использованием таким образом.
Я не могу вспомнить, где я получил этот трюк, хотя, для каких-либо дальнейших объяснений.
{ "repositories": [ { "type": "package", "package": { "version": "dev-master", "name": "nodge/lessphp", "source": { "url": "https://github.com/Nodge/lessphp.git", "type": "git", "reference": "master" }, "autoload": { "classmap": ["lessc.inc.php"] }, "dist": { "url": "https://github.com/Nodge/lessphp/archive/master.zip", "type": "zip" } } } ], "require": { "nodge/lessphp": "*" } }
Я пробовал много вариантов, но после того как я получил этот пост я увидел свет и он просто работал идеально.
это то, что вы должны сделать:
1-Fork de repository
2-Создайте ветку и внесите необходимые изменения.
3-Добавьте метку репозитория к вашему композитору.json
"repositories": [ { "type": "vcs", "url": "https://github.com/user/yourforkname" } ]4-в командной строке внутри вашего проекта требуется вилка следующим образом:
composer require vendor/packagename:dev-branchnameИ Вуаля!!
у вас есть ваша версия вилки работает
Comments