Composer未更新所需的库


Composer not updating required library

我正在使用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"
}

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

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

我还试了第二次composer installcomposer update,但都不起作用。我还验证了git在实时服务器上检索到了新的composer.json文件,并且已经检索到了。

为什么composer没有意识到更改并下载库?

除了你的日志确实告诉你"丢失"的库已经下载之外,我还有一些一般性的评论:

你确定要使用开发质量的每个库吗?因为这就是你用"最小稳定性"标志启用的:你允许来自库提供的任何开发分支的一切都处于可能中断的状态。

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

然后将更改推送到任何需要的地方,只有composer install,因为您可能想要与测试的库版本完全相同的库版本,而不是任何可能中断提交的稍新版本。

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

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

另一方面,这个库已经发布了版本,所以最好要求它们。。。