2022-07-19
종종 composer install을 하다 보면 아래와 같은 에러가 뜰때가 있다.
In PackageManifest.php line 122: Undefined index: name

composer 문제인가 싶어서, composer update를 하면, 아래와 같은 오류로 바뀐다
>Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi InvalidArgumentException : Please provide a valid cache path. at C:\inthe\aisoledu_laravel_was\vendor\laravel\framework\src\Illuminate\View\Compilers\Compiler.php:36 32| */ 33| public function __construct(Filesystem $files, $cachePath) 34| { 35| if (! $cachePath) { > 36| throw new InvalidArgumentException('Please provide a valid cache path.'); 37| } 38| 39| $this->files = $files; 40| $this->cachePath = $cachePath; Exception trace: 1 Illuminate\View\Compilers\Compiler::__construct(Object(Illuminate\Filesystem\Filesystem)) C:\inthe\aisoledu_laravel_was\vendor\laravel\framework\src\Illuminate\View\ViewServiceProvider.php:92 2 Illuminate\View\ViewServiceProvider::Illuminate\View\{closure}(Object(Illuminate\Foundation\Application), []) C:\inthe\aisoledu_laravel_was\vendor\laravel\framework\src\Illuminate\Container\Container.php:799 Please use the argument -v to see more details. Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
열심히 구글링을 하고 이것저것 해도 되는 방법은 거의 없고, 어떤 글에선 직접 vendor파일에 있는 소스들을 고치라고도 한다

근데 의외로 해결책은 디렉토리 문제일 경우가 있다
storage 디렉토리에 들어가서, app와 framework 디렉토리가 있는지 확인해 보자
logs 디렉토리만 있다면, 아래와 같은 구조로 디렉토리를 수동 추가한 뒤에 다시 composer install을 해보기 바란다
├─app │ └─public ├─framework │ ├─cache │ ├─sessions │ ├─testing │ └─views └─logs
필자는 보통 이 방법으로 해결이 되는 경우가 많았는데, 어쩔때는 아예 package를 수동으로 조작해야 해결 되는 경우도 있긴 했다

게다가 위의 디렉토리들이 생성되지 않아서 나오는 에러는 다른 때에도 많이 발생하니,
composer install 도중 에러가 뜬다면, 무조건 storage의 디렉토리 구조부터 확인 하고 다른 행동을 해보길 바란다.