如何更新单个作曲家包?

Blu*_*nie 1 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"
   }
],
Run Code Online (Sandbox Code Playgroud)

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

Jen*_*och 5

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

  1. 定义一个自定义仓库,它指向一个本地路径并install使用--prefer-source

    "repositories": [
        {
            "type":"vcs",
            "url":"/path/to/your/local/package/packageA"
        }
    ],
    "require":{
        "package/packageA" : "dev-master"
    }
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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


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

{
    "repositories": [
        {
            "packagist": false
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)