用 composer 更新 laravel依赖包时报错
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
In PackageManifest.php line 122:
Undefined index: name
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
错误提示:
In PackageManifest.php line 122:
Undefined index: name
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
可能是composer.lock中没有记录的第三方扩展,但是已经创建了服务提供者provider等
解决办法
找到
vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php
把116行
$packages = json_decode($this->files->get($path), true);
改成
$installed = json_decode($this->files->get($path), true);
$packages = $installed['packages'] ?? $installed;
然后再
composer update
就可以了