我有三个独立的项目(比如P1,P2和P3),每个项目都有作曲家设置。
P1需要部分P2和P2需要部分P3,这反过来导致P1内的作曲家强迫我要求P3。有没有办法删除这种依赖,因为P1中不需要P3中的任何代码?除了在作曲家之外删除它。
我尝试在P1编辑器文件中将P3设置为require-dev
,然后在--no-dev
运行时设置composer install/update
标志,但它仍在添加供应商,我想是因为对P2的要求。
答案 0 :(得分:0)
您无法避免P3出现在P1的供应商目录中。这就是作曲家的作品。
可能是P1使用的P2部分不使用P3内的任何东西,但这并不重要。只要P2声明它需要P3工作,任何需要P2的项目也将包括P3。
我想知道为什么你说你被迫要求P3。唯一的原因是,如果您还为具有代码的存储库命名,因为您不希望通过packagist.org发布它们。
但这只是事实的一半。您不必要求P3 - 您只需要声明包含最终所需代码的所有存储库。
如果您想要删除包含库模块的大量私有存储库列表,我建议您查看Satis。这是一个可以创建所有存储库的包列表的脚本,然后您只需要命名创建的package.json文件的位置,而不是每个可能使用的存储库。你必须考虑一种向Satis添加新存储库的方法 - 但是你只需要做一次,而且只需要这样做。