如:
有以下几种情况:
-
你的服务提供者等框架运行前必加载的代码有问题,执行 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