PHP 升级到 8.0 后如何修复 laravel/ui 错误以升级 Laravel

Dev*_*hon -3 php laravel composer-php php-8 laravel-8

在 Macos上将 PHP 升级到 8.0 后,我尝试升级 Laravel brew,但出现以下错误。我应该如何修复它?

\n
$ composer update                                                                                                                  \xe2\x9c\x94 \xe2\x94\x82 59% hdd \xe2\x94\x82 5.43G RAM \xe2\x94\x82 14:05:07 \xe2\x94\x82 \xe2\x87\xa30.18 KiB/s \xe2\x87\xa11.51 KiB/s 192.168.1.69 IP \xe2\x94\x82 213.163.173.1 IP \nLoading composer repositories with package information\nUpdating dependencies\nYour requirements could not be resolved to an installable set of packages.\n\n  Problem 1\n    - Conclusion: don't install laravel/framework v8.12.0 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.12.1 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.12.2 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.12.3 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.13.0 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.14.0 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.15.0 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.16.0 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.16.1 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.17.0 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.17.1 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.17.2 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.18.0 (conflict analysis result)\n    - Conclusion: don't install laravel/framework v8.18.1 (conflict analysis result)\n    - laravel/ui[v2.1.0, ..., v2.4.1] require php ^7.2.5 -> your php version (8.0.0) does not satisfy that requirement.\n    - illuminate/support[v7.0.0, ..., v7.28.4] require php ^7.2.5 -> your php version (8.0.0) does not satisfy that requirement.\n    - laravel/framework[v8.0.0, ..., v8.11.2] require php ^7.3 -> your php version (8.0.0) does not satisfy that requirement.\n    - laravel/ui[v2.5.0, ..., 2.x-dev] require illuminate/support ^7.0 -> satisfiable by illuminate/support[v7.0.0, ..., 7.x-dev].\n    - Only one of these can be installed: illuminate/support[dev-master, v5.5.0, ..., 5.8.x-dev, v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev], laravel/framework[v8.0.0, ..., 8.x-dev]. laravel/framework replaces illuminate/support and thus cannot coexist with it.\n    - Root composer.json requires laravel/framework ^8.0 -> satisfiable by laravel/framework[v8.0.0, ..., 8.x-dev].\n    - Root composer.json requires laravel/ui ^2.1 -> satisfiable by laravel/ui[v2.1.0, ..., 2.x-dev].\n
Run Code Online (Sandbox Code Playgroud)\n

=== 编辑 2020-12-10 ===

\n

composer.json:

\n
{\n    "name": "laravel/laravel",\n    "type": "project",\n    "description": "The Laravel Framework.",\n    "keywords": [\n        "framework",\n        "laravel"\n    ],\n    "license": "MIT",\n    "require": {\n        "php": "^8.0",\n        "fideloper/proxy": "^4.2",\n        "fruitcake/laravel-cors": "^2.0",\n        "guzzlehttp/guzzle": "^7.0.1",\n        "laravel/framework": "^8.0",\n        "laravel/passport": "^10.0.1",\n        "laravel/tinker": "^2.0",\n        "laravel/ui": "^2.1"\n    },\n    "require-dev": {\n        "facade/ignition": "^2.3.6",\n        "fakerphp/faker": "^1.9.1",\n        "mockery/mockery": "^1.3.1",\n        "nunomaduro/collision": "^5.0",\n        "phpunit/phpunit": "^9.3"\n    },\n    "config": {\n        "optimize-autoloader": true,\n        "preferred-install": "dist",\n        "sort-packages": true\n    },\n    "extra": {\n        "laravel": {\n            "dont-discover": []\n        }\n    },\n    "autoload": {\n        "psr-4": {\n            "App\\\\": "app/",\n            "Database\\\\Factories\\\\": "database/factories/",\n            "Database\\\\Seeders\\\\": "database/seeders/"\n        }\n    },\n    "autoload-dev": {\n        "psr-4": {\n            "Tests\\\\": "tests/"\n        }\n    },\n    "minimum-stability": "dev",\n    "prefer-stable": true,\n    "scripts": {\n        "post-autoload-dump": [\n            "Illuminate\\\\Foundation\\\\ComposerScripts::postAutoloadDump",\n            "@php artisan package:discover --ansi"\n        ],\n        "post-root-package-install": [\n            "@php -r \\"file_exists('.env') || copy('.env.example', '.env');\\""\n        ],\n        "post-create-project-cmd": [\n            "@php artisan key:generate --ansi"\n        ]\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

以下

\n

Nic*_*ase 5

正如多行错误中所写:您正在使用过时的软件包,这些软件包尚未与 PHP 8 兼容,也不相互兼容。

v2 中的requirelaravel/ui只支持 Laravel v7,而laravel/framework它的核心是 Laravel v8。更新laravel/ui到 v3,或将 Laravel 降级到 v7。从我的角度来看,这个问题与 PHP8 无关 - 你之前没有遇到任何问题真是一个奇迹

  • 多谢!事实上,将 `package.json` 更新为 `"laravel/ui": "^3.0"` 解决了我的问题。不知道为什么这个问题有这么多反对票。 (2认同)