Composer 遇到一個詭異的錯誤,提示 Could not load package

原文網址:http://my.oschina.net/gongshang/blog/391814

當我使用 composer 給 laravel 5 添加 illuminate\Html 模塊時,出現瞭如下的錯誤:

[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”

可問題是,我沒有在我的 composer.json 裏面發現任何 “^1.0.1” 啊。

解決方案

參考這個網站:composer update error

應該首先執行 composer self-update, 然後在執行 composer update。其原因是composer自己本身有更新。

但是參考的頁面上也有人提到,即使自己的 composer 是最新的,這麼做依然可以解決 update 出現的錯誤。wierd。

新問題

再次執行 composer update的時候,還是出錯了

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 28

解決方案

參考網站:laracasts.com/discuss

php artisan clear-compiled 需要在執行 composer update 之前執行。所以當遇到錯誤的時候,可以手動刪除vender/compile.php,然後重新 update。而且需要記住,在update 之後,需要再執行一次 composer optimize來再次生成compile.php。

可以將下面幾行命令保存爲腳本,在需要更新的時候使用,以減少出錯。

php artisan down
php artisan clear-compiled
composer update --no-dev
php artisan optimize
php artisan up

發佈了50 篇原創文章 · 獲贊 3 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章