2015-03-25 220 views
1

我知道我可以使用composer update vendor/package,但这里是我的情况。如何更新一个作曲家包?

更新时,Composer速度非常慢,我安装了大约6个软件包,并且从本地文件夹加载了一个本地vcs软件包。当我运行composer update即使对于特定的本地包,作曲家连接到Packagist寻找其他更新,这个过程是非常缓慢的,我不知道它是我的电脑还是我的互联网。有没有一种方法可以告诉作曲家只是在不联系Packagist的情况下运行composer update local/package来更新本地文件夹中的软件包并运行它下载的所有重json文件?

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

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

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

+0

[作曲:安装本地git仓库包(http://marekkalnik.tumblr.com/post/22929686367/composer-installing-package-from-local-git) – 2015-03-25 11:08:07

+0

@MarkBaker谢谢你,但这不是我所问的。我更新了这个问题。 – 2015-03-25 12:00:46

回答

3

有超速作曲家的多种方式弥补:

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

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

    后续绝招:如果你完全知道回购的type,然后指定它!

    换句话说:如果您可以指定"type":"git""type":"svn",请勿使用"type":"vcs"。作曲家将跳过所有的回购适配器,找出正确的一个。

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


试试这个,禁用默认Packagist库:

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

谢谢Jens,但我一直在寻找如何在更新本地软件包时告诉作曲家不要联系Packagist。我更新了这个问题。 – 2015-03-25 12:01:54

+0

更新了我的回答:请用'packagist:false'禁用packagist。 – 2015-03-25 12:10:04

+0

添加'packagist:false'解决了这个问题,但是当我想更新本地时,每次更新其他包并重新添加时都必须将其删除。我认为作曲家应该增加检测软件包在本地的功能,如果是,不需要调用packagist.com。无论如何,感谢解决。 – 2015-03-25 13:03:17