git pullコマンドを実行したらvendorのファイルが開けなくなってエラー(Failed opening required)

2020/11/13

仕事でLaravelを触っているときにgit pullコマンドを実行したらエラー画面になってしまって、ハマってしまいました。

もしかして、僕みたいに困っている人が1000人に1人はいるかもしれないので、情報共有しておこうと思います。

今回は特に自分の備忘録としてエントリーするので、殴り書きみたいに書きます。あしからず。

 

問題

git pullコマンドを実行すると、エラー画面になる(Failed opening required ***)

エラー内容を確認すると、/vendorフォルダ以下に本来あるべきファイルがないらしい。

再度、composer installcomposer 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 を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-実践知識