如何在没有--prefer-source的情况下使用Composer克隆存储库? (使用Symfony 2)

时间:2013-03-10 16:13:45

标签: php symfony composer-php

场景:我正在使用Symfony 2.2。在我的必需包列表中也是我的github存储库之一,我们称之为“TestLib”。

我知道我可以在symfony的composer.json中将github url定义为附加存储库,从Github通过Composer下载“TestLib”。

问题:我无法提交“TestLib”存储库,因为“TestLib”目录中没有本地.git目录。我想作曲家正在从Github取一个拉链而不是克隆它。

所以我的问题是:有没有办法在Symfony的composer.json中指定Composer应该克隆TestLib?

问题2:也许我的工作流程是错误的 - 所以如果你也有这种情况 - 你怎么处理这个?

3 个答案:

答案 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。