作曲家指定 'in development' 个包?

Composer specifying 'in development' packages?

我正在开发一个项目,其中包含多个本地 git 存储库,这些存储库组合在一起成为一个应用程序。就像 Symfony 有不同的组件一样,我们的应用程序也以类似的方式拆分。

我的问题是,link 这些包的正确方法是什么?

我知道我可以做这样的事情:

"repositories": [
    { "type": "path",  "url": "../another-component" },
    { "type": "path",  "url": "../yet-another-component" }
]

尽管如此,这仍然迫使我 composer install 拉入包裹。每当我 运行 composer install.

时,它都会克隆我用于开发的本地 git 存储库

显然,我不想每次调整构成我的主应用程序一部分的组件时都执行此操作,以引入我对构成我的主应用程序存储库的存储库所做的任何更改。

有没有更好的方法来保持开发存储库之间的同步?或者我可以调整它以获得我想要的吗?

我猜很多开发人员 运行 都会遇到这个问题,所以一定有一个经过深思熟虑的解决方案吗?

干杯。

编辑

我也看过这篇文章,它讨论了相同的概念:

http://tech.vg.no/2014/11/25/using-local-packages-as-composer-dependencies/#comment-522050

问题是,每次您对构成您的应用程序的存储库之一进行更改时,您都必须 运行: composer update,这很麻烦。我真的在寻找一种让它们正确同步的方法。

上述解决方案工作正常,但我不得不删除我的锁定文件并清除作曲家缓存。作曲家不会克隆存储库,而是创建一个符号链接,您的存储库将保持同步。

可能不建议删除您的锁定文件,所以如果有人有更好的建议,请post发表评论。