試行錯誤

仕事や趣味(スマブラ)など

composer install がうまくできない時の対処法

こんにちは、かずかずです。

今回は composer install がどうもうまくいかない人向けの記事です。

仕事で開発環境を構築していた際に起きた事象について、解決策が調べても出てこなかったので記事にしました。

目次

 起きた事象

ローカル開発環境の構築している時にcomposer installを実行すると以下のエラーメッセージが出てきてしまいました。

In aws.php line 26:
Class 'Aws\Laravel\AwsServiceProvider' not found

上記には書いていないですが、migrationをしている最中に起きてしまったエラーのようです。AwsServiceProviderなるものが見つからないと怒られています。

composer installとは何をしているのか

プロジェクト直下ディレクトリにあるcomposer.jsonの内容に従って、記載されているライブラリを記載されているバージョンで、インストールするコマンドになります。

インストールしたライブラリは プロジェクト直下のvendorディレクトリに保存されて行きます。vendorディレクトリが存在しない場合は、生成されます。


想定原因1: composer.jsonが間違っている

さて上記の事象では、「AwsServiceProviderが無い」と言っています。一番分かりやすい原因はcomposer.jsonの記載内容が間違っていることでしょう。

ライブラリ名やバージョンなど、記載内容をしっかり確認したうえで、もう一度実行してみましょう。


想定原因2: キャッシュが悪さをしている

それでも上手くいかない場合は、キャッシュが原因の可能性があります。

composer installは効率化を図るため、実行させるたびにキャッシュが保存され、何をインストールするのかキャッシュを参照して実行していきます。

以下のコマンドを実行する、もしくはキャッシュファイルそのものを削除してから、再度composer installを実行しましょう。

>php artisan cache:clear;
>php artisan config:clear;
>php artisan route:clear;
>php artisan view:clear;



想定原因3: もはやお手上げ ?最終手段

ここまで来たら力技ですが、vendorディレクトリが存在する場合はvendorディレクトリを削除してしましましょう!

削除するというのは少し怖いかもしれませんが、前記したようにvendorディレクトリはcomposer installするたびに生成されるので大丈夫です。思いっきり削除してください。

composer installの仕様なのか、vendorディレクトリが存在していると、ライブラリの内容が少しおかしくても、無視してしまうようです。

※ここの原因については、composerの仕組み等々知りたいので、有識者の方からコメント等いただけるととうれしいです。


おわりに

以上となります。自分は上記の「最終手段」にて一応は解決でき、ちゃんと開発環境の構築ができました。

本記事がどなたかのお役に立てれば嬉しいです。