2015-03-25 224 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