2016-03-28 2 views
1

Я создал вилку репо Laravel, внес некоторые изменения в нее и переименовал имя в файле композитора в votemike/laravel. Теперь я хотел бы создать новый проект, основанный на этом репо, и поэтому я звоню:Композитор-проект. Точка в конкретной ветке

composer create-project --prefer-dist votemike/laravel --repository='{"type":"vcs","url":"https://github.com/votemike/laravel"}' testing 

Однако мой терминал затем всплывает говоря Reading composer.json of votemike/laravel (v5.2.23) постепенно декрементах. В результате проект, похоже, является нормальным проектом Laravel без моих изменений. Затем я попробовал:

composer create-project --prefer-dist votemike/laravel:master --repository='{"type":"vcs","url":"https://github.com/votemike/laravel"}' testing 

Но это, кажется, не работает.

Может ли кто-нибудь помочь мне с командой, которую мне нужно запустить? Я полагаю, что мой компьютер не должен читать каждую версию файла композитора. И может ли команда вообще упроститься?

Спасибо,

Майкл

ответ

3

Update:

Поскольку это проект на заказ Композитор, мне интересно, если вы могли бы использовать пользовательский сценарий создания проекта, который я написал сообщение в блоге о: Composer create project script

Вы просто бросаете его в корень вашего проекта, редактируете его, чтобы соответствовать, и запускаете его - и он создаст для вас проект.

Я использовал его для тестирования своих собственных проектов Composer, и я думаю, что это может позволить вам просто создавать ваши собственные проекты Laravel без необходимости сражаться с Composer над версиями.

https://gist.github.com/jacmoe/e9e8ed5fd45affb893a8

Edit:

Что вам нужно сделать, это изменить следующим образом:

BRANCH_NAME=${1:-master} 
DEST_DIR=${2:-~/Desktop/newapp} 
PACKAGE_NAME=vendor/package 

Вы можете, вероятно, оставить первый (BRANCH_NAME) как есть, но изменить DEST_DIR и PACKAGE_NAME !

PACKAGE_NAMEобязательно матч имя пакета из composer.json для измененного исходного каталога Laravel.

Примечание:

Вы можете использовать это с вашей локально клонированной копии вашей вилки Laravel - это работает локально - он не пытается найти что-нибудь на Github или Packagist. Он использует каталог, в котором вы находитесь (рабочий каталог), и будет использовать его для создания проекта - вы можете выбрать, где его создаст скрипт.


Оригинальный ответ:

Off верхней части моей головы:

composer create-project --prefer-dist --stability=dev votemike/laravel 

Или, если это не работает, попробуйте следующее:

composer create-project --prefer-dist --stability=dev votemike/laravel:dev-master 

В качестве альтернативы , вместо dev-master, используйте @dev - или dev-branch ...

Первая команда должна это сделать.

Есть ли в вашем клонированном проекте какие-либо теги? Если это не так, это объяснит, почему Composer действует. Говорить, что он использует dev-master, это исправит, потому что Composer по умолчанию будет выпускать только релизы (теги по схеме major.minor.revision).

Edit:

В одном из моих проектов я использую мастер ветвь пакета, используя следующую запись в моем composer.json:

"jacmoe/yii2-tale-jade": "dev-master", 

Как вы получаете ваш пакет в ваш composer.json до вас - либо вручную, либо требуя его, используя правильную версию (например, dev-master)

Это требует, чтобы composer.json для проекта вы т не требуется использование версии поле - если оно есть, удалите его.

+0

В проекте есть теги исходного репарата Laravel, которые я еще не добавил. Означает ли это, что мне нужно каждый раз создавать новый тег? Нет ли способа использовать HEAD мастера? Будет ли что-то создавать новую ветку с определенным именем? – Votemike

+0

'--stability = dev' должен это сделать. В противном случае добавьте ': @ dev' или': dev-master' в имя пакета :) – jacmoe

+0

Обновлен мой ответ немного .. – jacmoe

Смежные вопросы