在使用最新版 composer 安装 laravel 的时候,你可能会遇到下面的问题而安装失败:
$ php composer.phar create-project --prefer-dist laravel/laravel bloginstalling laravel/laravel (v5.2.15) - installing laravel/laravel (v5.2.15) loading from cachecreated project in blog> php -r copy('.env.example', '.env');> php artisan clear-compiledphp warning: require(/home/vagrant/laraveltest/blog/bootstrap/../vendor/autoload.php): failed to open stream: no such file or directory in /home/vagrant/laraveltest/blog/bootstrap/autoload.php on line 17php fatal error: require(): failed opening required '/home/vagrant/laraveltest/blog/bootstrap/../vendor/autoload.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/vagrant/laraveltest/blog/bootstrap/autoload.php on line 17script php artisan clear-compiled handling the pre-update-cmd event returned with an error [runtimeexception] error output: php warning: require(/home/vagrant/laraveltest/blog/bootstrap/../vendor/autoload.php): failed to open stream: no such file or directory in /home/vagrant/laraveltest/bl og/bootstrap/autoload.php on line 17 php fatal error: require(): failed opening required '/home/vagrant/laraveltest/blog/bootstrap/../vendor/autoload.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/vagr ant/laraveltest/blog/bootstrap/autoload.php on line 17 create-project [-s|--stability stability] [--prefer-source] [--prefer-dist] [--repository repository] [--repository-url repository-url] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [--keep-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []
这是由于 composer 最近更新了 pre-update-command的工作方式,而这会使得 laravel 安装失败。
@ jordi boggiano给出的 原因如下:
这是由于缺少 composer.lock文件,因此最初的 install命令被 update操作替代,因为它会触发 pre-update-cmd,而在这之前是触发的 pre-install-cmd。
幸运的是,修复这个问题非常简单,只需要把 php artisan clear-compiled移动到 post-update-command即可:
这里是完整的 changelog。