Composer 遇到一个诡异的错误,提示 Could not load package

问题

当我使用 composer 给 laravel 5 添加 illuminate\Html 模块时,出现了以下的错误:php

[RuntimeException]
Could not load package dragonrun1/phpspec in http://packagist.org: [UnexpectedValueException] Could not parse version constraint ^
1.0.1: Invalid version string "^1.0.1"html

可问题是,我没有在个人 composer.json 里面发现任何 "^1.0.1" 啊。laravel

解决方案

参考这个网站:composer update errorjson

应该首先执行 composer self-update, 而后在执行 composer update。其缘由是composer本身自己有更新。composer

可是参考的页面上也有人提到,即便本身的 composer 是最新的,这么作依然能够解决 update 出现的错误。wierd。网站

新问题

再次执行 composer update的时候,仍是出错了code

PHP Fatal error: Call to undefined method Illuminate\Foundation\Application::getCachedCompilePath() in /var/www/html/ninebb/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php on line 28htm

解决方案

参考网站:laracasts.com/discussget

php artisan clear-compiled 须要在执行 composer update 以前执行。因此当遇到错误的时候,能够手动删除 vender/compile.php,而后从新 update。并且须要记住,在update 以后,须要再执行一次 composer optimize 来再次生成compile.php。string

能够将下面几行命令保存为脚本,在须要更新的时候使用,以减小出错。

php artisan down
php artisan clear-compiled
composer update --no-dev
php artisan optimize
php artisan up
相关文章
相关标签/搜索