7

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

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

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

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

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

4

3 回答 3

13

添加@dev到包版本也会克隆存储库。

{
  "require": {
    'package': '*@dev'
  }
}

也可以设置source为首选项composer.json

{
 "config": {
     "preferred-install": "source"
 }
}
于 2013-03-10T18:31:19.583 回答
12

如果我注意到供应商有问题,我通常会做的是rm -rf vendor/foo/bar删除它,然后我运行composer install --prefer-source以将其作为 git repo 取回。

于 2013-03-10T16:31:49.117 回答
0

我所做的是将我的 github 存储库添加到 packagist.org 然后我这样做了:

composer require malhal/createdby dev-master --prefer-source

这似乎将 require 行添加到 composer.json 并将其作为 git repo 获取,不幸的是,这只能工作一次,因此如果您无法重用 composer.json 进行新安装并且需要删除 require行,然后记得再次执行相同的命令。此命令还下载 git 存储库,您不必再进行作曲家更新。

于 2016-08-28T13:09:53.597 回答