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
相關文章
相關標籤/搜索