如何更新单个作曲家包?

时间:2015-03-25 11:02:38

标签: php composer-php packagist

我知道我可以使用composer update vendor/package,但这是我的理由。

更新时Composer速度非常慢,我安装了大约6个软件包,并从本地文件夹加载了一个本地vcs软件包。当我为特定的本地包运行composer update时,作曲家会连接到Packagist寻找其他更新,这个过程非常慢,我不知道它是我的电脑还是我的互联网。当我运行composer update local/package而不联系Packagist并运行它下载的所有重量级json文件时,有没有办法告诉作曲家只是从本地文件夹更新包?

注意: 我知道如何加载本地编写器包。它的加载非常完美,只是我正在寻找一种方法来告诉作曲家只是加载本地包而不联系Packagist。

"repositories": [
   {
     "type": "vcs",
     "url": "../local/package"
   }
],

我的问题是联系Packagist的速度很慢。正在运行composer update local/package -vvv显示它仍然从packagist下载json文件,即使它被告知只更新local/package

1 个答案:

答案 0 :(得分:5)

有多种方法可以加快Composer的提取速度:

  1. 定义一个自定义回购,指向一个本地路径,install指向--prefer-source

    "repositories": [
        {
            "type":"vcs",
            "url":"/path/to/your/local/package/packageA"
        }
    ],
    "require":{
        "package/packageA" : "dev-master"
    }
    

    后续技巧:如果您确切知道回购的type,那么请指定它!

    换句话说:如果您可以指定"type":"vcs""type":"git",请不要使用"type":"svn"。 Composer将跳过遍历所有repo适配器以找出正确的一个。

  2. 您可以设置Satis并仅为项目及其依赖项("require-dependencies": "true")定义所需的包。这充当packagist前面的包代理。您只需从本地Satis镜像/代理中获取。


  3. 尝试一下,禁用默认的Packagist存储库:

    {
        "repositories": [
            {
                "packagist": false
            }
        ]
    }