作曲家 - 多重依赖性问题

时间:2013-08-29 17:34:15

标签: composer-php

我有三个独立的项目(比如P1,P2和P3),每个项目都有作曲家设置。

P1需要部分P2和P2需要部分P3,这反过来导致P1内的作曲家强迫我要求P3。有没有办法删除这种依赖,因为P1中不需要P3中的任何代码?除了在作曲家之外删除它。

我尝试在P1编辑器文件中将P3设置为require-dev,然后在--no-dev运行时设置composer install/update标志,但它仍在添加供应商,我想是因为对P2的要求。

1 个答案:

答案 0 :(得分:0)

您无法避免P3出现在P1的供应商目录中。这就是作曲家的作品。

可能是P1使用的P2部分不使用P3内的任何东西,但这并不重要。只要P2声明它需要P3工作,任何需要P2的项目也将包括P3。

我想知道为什么你说你被迫要求P3。唯一的原因是,如果您还为具有代码的存储库命名,因为您不希望通过packagist.org发布它们。

但这只是事实的一半。您不必要求P3 - 您只需要声明包含最终所需代码的所有存储库。

如果您想要删除包含库模块的大量私有存储库列表,我建议您查看Satis。这是一个可以创建所有存储库的包列表的脚本,然后您只需要命名创建的package.json文件的位置,而不是每个可能使用的存储库。你必须考虑一种向Satis添加新存储库的方法 - 但是你只需要做一次,而且只需要这样做。