首页 > 解决方案 > 更新 Laravel 项目包时出现“找不到类”

问题描述

composer update在 Laravel 项目中运行时,出现错误:

Loading composer repositories with package information  
Installing dependencies (including require-dev) from lock file  
Nothing to install or update  
Generating optimized autoload files  
> Illuminate\Foundation\ComposerScripts::postAutoloadDump  
> @php artisan package:discover

In ProviderRepository.php line 208:

Class 'NunoMaduro\Collision\Adapters\Laravel\CollisionServiceProvider' not   
found                                                                        

Script @php artisan package:discover handling the post-autoload-dump event
returned with error code 1

我试图添加到composer.json

"extra": { "laravel": { "dont-discover": [ "laravel/dusk" ] } }

并清除缓存:

cd bootstrap/cache/
rm -rf *.php

没有任何帮助。

composer.json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": "^7.1.3",
        "barryvdh/laravel-cors": "^0.11.2",
        "barryvdh/laravel-dompdf": "^0.8.3",
        "barryvdh/laravel-snappy": "^0.4.3",
        "fideloper/proxy": "^4.0",
        "guzzlehttp/guzzle": "~6.0",
        "h4cc/wkhtmltopdf-amd64": "0.12.x",
        "intervention/image": "^2.4",
        "knplabs/knp-snappy": "^1.1",
        "laravel/framework": "5.7.21",
        "laravel/passport": "^7.0",
        "laravel/socialite": "^4.0",
        "laravel/tinker": "^1.0",
        "unisharp/laravel-ckeditor": "^4.7"
    },
    "require-dev": {
        "beyondcode/laravel-dump-server": "^1.0",
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "laravel/homestead": "^7.20",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^2.0",
        "phpunit/phpunit": "^7.0"
    },
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

我怎么解决这个问题?

标签: phplaravel

解决方案


如果包安装正确并且缺少的类确实存在,请尝试运行composer dump-autoload


推荐阅读