Laravel 5.11 Composer更新错误


Laravel 5.11 Composer Update Error

我的朋友安装了oriceon-oauth-5-laravel包,我从git中提取了代码。我运行命令composer update,但它抛出以下错误

异常'Symfony'Component'Debug' exception 'FatalErrorException'与消息'Class 'Artdarek'OAuth'OAuthServiceProvider' not found'/var/www/html/test/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:146我通过在app.php文件中注释服务提供者别名暂时解决了这个问题。

那么,解决这个问题的正确方法是什么?

问题是,在您的config/app.php文件中,您可能会看到以下内容:

Artdarek'OAuth'OAuthServiceProvider::class,
提供者列表中的

。因为还没有安装那个包,所以这个类不存在。我想你已经明白了这一点,因为你说你注释掉了提供程序。

composer.json中,您将在scripts下看到:

"pre-update-cmd": [
    "php artisan clear-compiled"
],

这意味着无论何时运行composer update,它首先调用php artisan clear-compiled,它加载配置文件,由于缺少类而失败。

绕过它的两种方法:

将提供程序更改为字符串中的引号,就像在Laravel 4中那样:

"Artdarek'OAuth'OAuthServiceProvider",

(这就是为什么在Laravel 5/PHP 5.5之前没有人真正遇到这个问题的原因)。还是…

真正解决

只运行composer install而不是composer update。这就是你应该做的,因为无论你的队友推送什么,都是在composer.lock中的库版本上工作的。所以如果你运行install,它是a)安装已知的工作版本和b)绕过php artisan命令,直到安装完成。

如果您确实必须运行composer update,那么使用--no-scripts标志