You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9升级至10时遭遇依赖冲突问题求助

Laravel 9 升级至 Laravel 10 依赖冲突排查与解决

问题背景

将Laravel 9升级到Laravel 10时出现依赖无法解析的错误,当前PHP版本为8.2.2,已满足Laravel 10要求的PHP 8.1.0+、Composer 2.2.0+条件,尝试过composer update --with-all-dependencies,替换tomfordrumm/jwt-auth为tymon/jwt-auth仍未解决。

原composer.json依赖配置

"require": {
    "php": "^8.0.2",
    "darkaonline/l5-swagger": "^8.4",
    "ejarnutowski/laravel-api-key": "^1.0",
    "guzzlehttp/guzzle": "^7.2",
    "laravel/framework": "^9.19",
    "laravel/sanctum": "^3.0",
    "laravel/tinker": "^2.7",
    "spatie/laravel-activitylog": "^4.7",
    "spatie/laravel-permission": "^5.8",
    "tomfordrumm/jwt-auth": "dev-develop"
},
"require-dev": {
    "barryvdh/laravel-debugbar": "^3.7",
    "fakerphp/faker": "^1.9.1",
    "laravel/pint": "^1.0",
    "laravel/sail": "^1.0.1",
    "mockery/mockery": "^1.4.4",
    "nunomaduro/collision": "^6.1",
    "phpunit/phpunit": "^9.5.10",
    "spatie/laravel-ignition": "^1.0"
},

修改后的composer.json依赖配置

"require": {
    "php": "^8.1",
    "darkaonline/l5-swagger": "^8.4",
    "ejarnutowski/laravel-api-key": "^1.0",
    "guzzlehttp/guzzle": "^7.2",
    "laravel/framework": "^10.0",
    "laravel/sanctum": "^3.2",
    "laravel/tinker": "^2.8",
    "spatie/laravel-activitylog": "^4.7",
    "spatie/laravel-permission": "^5.8",
    "tomfordrumm/jwt-auth": "dev-develop"
},
"require-dev": {
    "barryvdh/laravel-debugbar": "^3.7",
    "fakerphp/faker": "^1.9.1",
    "laravel/pint": "^1.0",
    "laravel/sail": "^1.18",
    "mockery/mockery": "^1.4.4",
    "nunomaduro/collision": "^7.0",
    "phpunit/phpunit": "^10.0",
    "spatie/laravel-ignition": "^2.0.0"
},

错误信息

Your requirements could not be resolved to an installable set of packages.

Problem 1
- illuminate/support[v5.6.0, ..., v5.8.36] require php ^7.1.3 -> your php version (8.2.2) does not satisfy that requirement.
- illuminate/support[v6.0.0, ..., v6.19.1] require php ^7.2 -> your php version (8.2.2) does not satisfy that requirement.
- illuminate/support[v7.0.0, ..., v7.28.4] require php ^7.2.5 -> your php version (8.2.2) does not satisfy that requirement.
- illuminate/support[v8.0.0, ..., v8.11.2] require php ^7.3 -> your php version (8.2.2) does not satisfy that requirement.
- Root composer.json requires tomfordrumm/jwt-auth dev-develop -> satisfiable by tomfordrumm/jwt-auth[dev-develop].
- Conclusion: don't install laravel/framework v10.0.2 (conflict analysis result)
- Conclusion: don't install laravel/framework v10.0.3 (conflict analysis result)
- Conclusion: don't install laravel/framework v10.1.0 (conflict analysis result)
- Conclusion: don't install laravel/framework v10.1.1 (conflict analysis result)
- Conclusion: don't install laravel/framework v10.1.2 (conflict analysis result)
- Conclusion: don't install laravel/framework v10.1.3 (conflict analysis result)
- Conclusion: don't install laravel/framework v10.1.4 (conflict analysis result)
- Conclusion: don't install laravel/framework v10.1.5 (conflict analysis result)
- Conclusion: don't install laravel/framework v10.0.1 (conflict analysis result)
- tomfordrumm/jwt-auth dev-develop requires illuminate/support ^5.2|^6|^7|^8|^9 -> satisfiable by illuminate/support[v5.2.0, ..., v5.8.36, v6.0.0, ..., v6.20.44, v7.0.0, ..., v7.30.6, v8.0.0, ..., v8.83.27, v9.0.0, ..., v9.52.4].
- Only one of these can be installed: illuminate/support[v5.2.0, ..., v5.8.36, v6.0.0, ..., v6.20.44, v7.0.0, ..., v7.30.6, v8.0.0, ..., v8.83.27, v9.0.0, ..., v9.52.4, v10.0.0, ..., v10.1.5], laravel/framework[v10.0.0, ..., v10.1.5]. laravel/framework replaces illuminate/support and thus cannot coexist with it.
- Root composer.json requires laravel/framework ^10.0 -> satisfiable by laravel/framework[v10.0.0, ..., v10.1.5].

解决方案

1. 彻底处理JWT依赖冲突

错误核心是tomfordrumm/jwt-auth的dev-develop分支仅支持到Laravel 9,无法兼容Laravel 10。替换tymon/jwt-auth时需确保清理旧依赖并指定兼容版本:

  • 完全移除旧JWT包:
    composer remove tomfordrumm/jwt-auth --remove-dependencies
    
  • 安装兼容Laravel 10的tymon/jwt-auth版本:
    composer require tymon/jwt-auth "^2.1"
    

2. 更新其他依赖至Laravel 10兼容版本

逐一检查并升级不兼容的依赖:

  • spatie/laravel-activitylog: 从4.7升级到5.0
  • spatie/laravel-permission: 从5.8升级到6.0
  • darkaonline/l5-swagger: 从8.4升级到9.0
  • barryvdh/laravel-debugbar: 从3.7升级到3.12

更新后的核心依赖示例:

"require": {
    "php": "^8.1",
    "darkaonline/l5-swagger": "^9.0",
    "ejarnutowski/laravel-api-key": "^1.0",
    "guzzlehttp/guzzle": "^7.2",
    "laravel/framework": "^10.0",
    "laravel/sanctum": "^3.2",
    "laravel/tinker": "^2.8",
    "spatie/laravel-activitylog": "^5.0",
    "spatie/laravel-permission": "^6.0",
    "tymon/jwt-auth": "^2.1"
},
"require-dev": {
    "barryvdh/laravel-debugbar": "^3.12",
    "fakerphp/faker": "^1.9.1",
    "laravel/pint": "^1.0",
    "laravel/sail": "^1.18",
    "mockery/mockery": "^1.4.4",
    "nunomaduro/collision": "^7.0",
    "phpunit/phpunit": "^10.0",
    "spatie/laravel-ignition": "^2.0.0"
},

3. 清理缓存并重新更新依赖

执行以下命令确保依赖完全同步:

composer clear-cache
composer update --with-all-dependencies

内容的提问来源于stack exchange,提问作者Rajib Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:07:02