Composer dump-autoload 或 update 在 Laravel 5.5 上导致致命错误

Composer dump-autoload or update results in fatal error on Laravel 5.5

刚刚尝试 运行 一个 composer dump-autoload,但最终出现以下错误,这是我以前从未遇到过的

Class UpdateHelper\ComposerPlugin contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (Composer\Plugin\PluginInterface::deactivate, Composer\Plugin\PluginInterface::uninstall) in /var/www/vhosts/example.com/vendor/kylekatarnls/update-helper/src/UpdateHelper/ComposerPlugin.php on line 11

在 G 上搜索以找到一些答案,但没有发现任何东西甚至可以远程解决我在这里遇到的问题。

有什么建议吗?

我刚刚找到了解决这个问题的办法。这是给有同样问题的人的。

我不得不删除位于 vendor 目录中的目录 kylekatarnls,然后是 运行 composer update --prefer-source,然后是 composer dump-autoload.

现在一切正常。

我删除了供应商目录和 composer.lock 文件。执行 composer install 后一切正常。

您好像在使用 Composer v2。如果是这样,请继续阅读...

Composer v2 adds some new functions 到他们的插件接口(即 deactivate()uninstall()

但是 kylekatarnls/update-helper < v1.2.1 正在实现所述接口,但 没有实现新功能

所以要修复,您需要将 kylekatarnls/update-helper 更新到最新版本(撰写本文时为 v1.2.1),其中包含 a fix(实现缺少的方法):

composer update kylekatarnls/update-helper

将 Composer 降级到版本 1 对我有用。

composer self-update 1.10.22
rm -rf vendor
composer install

这对我有用:

rm -rf vendor
rm -f composer.lock
composer install

删除或更改名称目录“kylekatarnls”和作曲家更新

1、mv kylekatarnls kylekatarnls_bkrm -rf kylekatarnls

2,composer update

=>成功