如:
有以下幾種情況:
-
你的服務提供者等框架運行前必加載的代碼有問題,執行 optimize 時中斷
-
使用composer update更新的包有問題
-
composer update時各種情況更新中斷, 依賴不完整
-
composer update前沒有運行 artisan clear-compield 導致舊的編譯文件沒有被清除
-
optimize 會在 bootstrap/cache/ 文件夾下寫入compiled.php 和 service.json 這類map文件,檢查一下文件夾權限
推薦幾組解決辦法:
清理編譯文件的方式
-
php artisan clear-compiled
// 或者把上一句配置到 composer.json 中的 pre-update-cmd 以防後面又出現問題 -
composer update
使用無腳本的composer更新,並強制覆蓋之前的編譯內容
-
composer clearcache
-
composer update --no-scripts
-
php artisan optimize --force
暴力一點
如果還有問題, 就直接刪掉vendor目錄和composer.lock, 使用composer install --no-scripts重新安裝,記得最後運行 php artisan optimize --force