Php 如何";“首选来源”;对于一些选定的依赖项,以及;“偏好距离”;剩下的呢?

Php 如何";“首选来源”;对于一些选定的依赖项,以及;“偏好距离”;剩下的呢?,php,composer-php,Php,Composer Php,我想安装我使用“首选源”选项维护的所有依赖项,以及我使用“首选源”选项未维护的所有其他依赖项 这对作曲家来说可能吗?我在想可能会有这样的事情,但我找不到: "my/dependency":"v1.2.3@dist", "other/dependency":"v4.5.6@source", 有什么想法吗?您不应该让您自己的依赖项拥有分发版下载链接 这不包括使用Github,但可以与任何纯Git存储库一起使用。Composer显式检查repo url是否指向Github,然后尝试从已知源下载,而不

我想安装我使用“首选源”选项维护的所有依赖项,以及我使用“首选源”选项未维护的所有其他依赖项

这对作曲家来说可能吗?我在想可能会有这样的事情,但我找不到:

"my/dependency":"v1.2.3@dist",
"other/dependency":"v4.5.6@source",

有什么想法吗?

您不应该让您自己的依赖项拥有分发版下载链接

这不包括使用Github,但可以与任何纯Git存储库一起使用。Composer显式检查repo url是否指向Github,然后尝试从已知源下载,而不是克隆repo,这通常要快得多

因此,您可能应该参考您当地的Git回购协议,而不是Github(我假设您现在正在这样做)

但是,没有办法决定每个依赖项使用哪种方法。

现在有一个。(我不确定在提出原始问题时是否有此功能)

默认为“自动”,可以是“源”、“距离”或“自动”中的任意一个。此选项允许您设置Composer希望使用的安装方法。也可以是模式的散列,以获得更细粒度的安装首选项

这使您可以为每个依赖项指定首选的安装方法


请参阅该部分,了解依赖项可以托管的可用方法。

我从未提到过Git或Github。一些公共存储库将下载zip,而另一些将下载整个源历史记录。在文档中,它说默认情况下,它将下载不稳定依赖项的源代码,下载稳定依赖项的dist,这是我不想要的。我要我的来源,其他一切都要距离。您确定没有办法决定每个依赖项使用哪种方法吗?如果是这样,糟糕透了。如果一些回购协议下载dist,那么他们已经宣布了他们的软件包的下载URL。其他人没有,除非您知道下载URL并手动将其添加到本地composer.json文件中,并为新版本维护它,否则无法更改。如前所述,对于像Github这样的一些存储库,有关于下载位置的已知元信息,但这不是一般情况。答案在:这是2019年的答案!是啊!
{
    "config": {
        "preferred-install": {
            "my-organization/stable-package": "dist",
            "my-organization/*": "source",
            "partner-organization/*": "auto",
            "*": "dist"
        }
    }
}