Laravel 9升级至10时Composer依赖包冲突问题求助
解决Laravel 9升级到10的Composer依赖冲突问题
核心问题分析
你的冲突根源是多个第三方包的版本未适配Laravel 10的要求:
- Laravel 10强制要求
monolog/monolog ^3.0,但部分旧版包依赖monolog ^2.0 spatie/laravel-ignition、tightenco/ziggy、pestphp/pest等包的现有版本不支持Laravel 10- PHP版本约束需要升级到
^8.1(Laravel 10最低要求)
解决步骤
1. 备份关键文件
先备份composer.json、composer.lock和vendor文件夹,防止操作失误丢失配置。
2. 更新composer.json的版本约束
修改require和require-dev部分,替换为以下适配Laravel 10的版本:
{ "name": "laravel/laravel", "type": "project", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "require": { "php": "^8.1", "guzzlehttp/guzzle": "^7.2", "inertiajs/inertia-laravel": "^0.7.0", "inspector-apm/inspector-laravel": "^4.7", "laravel/framework": "^10.0", "laravel/jetstream": "^3.0", "laravel/sanctum": "^3.2.1", "laravel/tinker": "^2.7", "manifiesto/dashboard": "^0.4", "monolog/monolog": "^3.0", "pestphp/pest": "^2.0", "pestphp/pest-plugin-laravel": "^2.0", "sentry/sentry-laravel": "^3.3", "tightenco/ziggy": "^2.0" }, "require-dev": { "barryvdh/laravel-debugbar": "^3.8", "fakerphp/faker": "^1.9.1", "laravel/sail": "^1.0.1", "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^7.0", "phpunit/phpunit": "^10.0", "spatie/laravel-ignition": "^2.0" }, "autoload": { "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" } }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" ], "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate --ansi" ] }, "extra": { "laravel": { "dont-discover": [] } }, "config": { "optimize-autoloader": true, "preferred-install": "dist", "sort-packages": true, "allow-plugins": { "pestphp/pest-plugin": true, "php-http/discovery": true } }, "minimum-stability": "dev", "prefer-stable": true, "repositories": [ { "type": "vcs", "url": "git@bitbucket.org:manifiesto/dashboard.git" } ] }
3. 清除旧依赖缓存
删除锁定文件和旧依赖文件夹:
rm composer.lock rm -rf vendor
4. 重新安装依赖
执行以下命令重新生成依赖:
composer install
额外注意事项
- 若
manifiesto/dashboard私有包不支持Laravel 10,需联系包开发者更新版本,或暂时保留Laravel 9直至该包适配。 - 升级后需运行Laravel升级命令完成框架配置更新:
php artisan upgrade - 测试应用功能,确保第三方包升级后无兼容性问题。
内容的提问来源于stack exchange,提问作者Ignacio
相关产品推荐
相关产品推荐

