Composer不更新所需的库

时间:2013-11-28 22:35:15

标签: php git laravel-4 composer-php

我正在使用Laravel框架,并希望包含一个来自GitHub的库。这是我的完整composer.json文件:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.0.*",
        "intervention/helper": "dev-master" <- this is what I've added
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/validators",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "dev"
}

我在"intervention/helper": "dev-master"指令下添加了require,当我在本地网站副本上composer update时,一切正常,我可以使用该库。

我做了git pushpull将它放到我的实时服务器上,当执行composer update时,它不会下载此库。这是命令的整个输出:http://pastebin.com/UgPNTaDw

我还第二次尝试composer installcomposer update,但都没有奏效。我还验证了git在实时服务器上检索了新的composer.json文件,并且它有。

为什么作曲家不识别这些变化并下载图书馆?

1 个答案:

答案 0 :(得分:1)

除了您的日志确实告诉您下载了“缺失”库之外,我还有一些一般性评论:

您确定要在开发质量中使用每个库吗?因为这是您使用“最小稳定性”标志启用的:您允许从库中提供的任何开发分支中可能处于破坏状态的所有内容。

第二件事是:你应该只在你的开发机器上更新一次!然后测试一切仍然有效,并提交composer.lock文件!

然后将该更改推送到您需要的任何位置,并且只有composer install - 因为您可能想要使用您测试过的确切SAME库版本,而不是任何稍微更新的可能已损坏的提交。

如果您只想将该特定库用作开发版本,则应将该标志添加到版本要求中:

"intervention/helper": "dev-master@dev"

另一方面,这个库已经发布了版本,因此最好要求它们......