2020/11/13
仕事でLaravelを触っているときにgit pull
コマンドを実行したらエラー画面になってしまって、ハマってしまいました。
もしかして、僕みたいに困っている人が1000人に1人はいるかもしれないので、情報共有しておこうと思います。
今回は特に自分の備忘録としてエントリーするので、殴り書きみたいに書きます。あしからず。
問題
git pull
コマンドを実行すると、エラー画面になる(Failed opening required ***)
エラー内容を確認すると、/vendorフォルダ以下に本来あるべきファイルがないらしい。
再度、composer install
や composer update
コマンドを実行してもエラー画面が消えない。
Failed opening required '/project/vendor/autoload.php'
とか表示され、さらに他のファイルがないとか言われて状況がより悪化。
また、他のブランチ(問題のなかったブランチ)にチェックアウトしても同じエラー。
一応、composer dump-autoload
を実行してみたが、意味なし。
原因
composer install
コマンドを実行して失敗した場合、次にインストールするとこのエラーが発生するらしい。
※リモートリポジトリにある composer.lock の内容が変わった場合に、よくこの現象が発生する。
解決策
vendorディレクトリを削除して再び composer install
コマンドを入力すると直る。
# いったん、ローカルをリモートのブランチに強制一致させる
$ git fetch origin master
$ git reset --hard origin/master
# vendorディレクトリを削除
$ rm -rf vendor/
# composer.lockを元にパッケージを再インストール
$ composer install
composer install
コマンドは composer.lock
の内容を基に/vendorフォルダ以下の内容を構成します。
以上、個人的なメモでした。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。