场景:我正在使用Symfony 2.2。在我的必需包列表中也是我的github存储库之一,我们称之为“TestLib”。
我知道我可以在symfony的composer.json中将github url定义为附加存储库,从Github通过Composer下载“TestLib”。
问题:我无法提交“TestLib”存储库,因为“TestLib”目录中没有本地.git目录。我想作曲家正在从Github取一个拉链而不是克隆它。
所以我的问题是:有没有办法在Symfony的composer.json中指定Composer应该克隆TestLib?
问题2:也许我的工作流程是错误的 - 所以如果你也有这种情况 - 你怎么处理这个?
答案 0 :(得分:13)
将@dev
添加到包版本中也会克隆存储库。
{
"require": {
'package': '*@dev'
}
}
也可以在source
composer.json
作为首选项
{
"config": {
"preferred-install": "source"
}
}
答案 1 :(得分:12)
如果我注意到某个供应商遇到问题,我通常会执行rm -rf vendor/foo/bar
删除它,然后运行composer install --prefer-source
将其作为git repo恢复。
答案 2 :(得分:0)
我所做的是将我的github repo添加到packagist.org然后我这样做了:
composer require malhal/createdby dev-master --prefer-source
这似乎将要求行添加到composer.json并且还将其作为git repo获取,遗憾的是,如果您无法重新使用composer.json进行新安装并且需要删除require行,然后再记住再次执行相同的命令。此命令还会下载您不必再执行其他作曲家更新的git repo。