当我使用作曲家 2 时,Heroku 检测到作曲家 1

Fab*_*umo 2 php heroku composer-php

尝试在 Heroku 中部署时,它返回以下错误:

 !     The following is the full output from the installation attempt:
 !     
 !     > You are using Composer 1 which is deprecated. You should upgrade to Composer 2, see https://blog.packagist.com/deprecating-composer-1-support/
 !     > Loading repositories with available runtimes and extensions
 !     > Updating dependencies
 !     > Your requirements could not be resolved to an installable set of packages.
 !     > 
 !     >   Problem 1
 !     >     - The requested package composer-plugin-api could not be found in any version, there may be a typo in the package name.
 !     > 
Run Code Online (Sandbox Code Playgroud)

关于如何解决此问题的信息不多。我还应该如何指定正在使用composer 2?一切都是从 Composer 2 安装的。

作曲家.json

{
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "App/helpers.php"
        ]
    },
    "require": {
        "vlucas/phpdotenv": "^5.4",
        "abraham/twitteroauth": "^3.2",
        "jenssegers/blade": "^1.4",
        "bramus/router": "^1.6",
        "nesbot/carbon": "^2.55",
        "phpfastcache/phpfastcache": "*",
        "php": ">=8.0"
    }
}

Run Code Online (Sandbox Code Playgroud)

作曲家--版本

Composer version 2.2.1 2021-12-22 22:21:31
Run Code Online (Sandbox Code Playgroud)

Fab*_*umo 7

问题是确切的 Composer 版本,heroku 适用于 Composer 版本 2.1.14 (https://devcenter.heroku.com/articles/php-support#installation-of-dependencies),而我的 Composer 是 2.2.1 。

我用以下方法修复了它:

删除composer.lock和vendor

composer self-update 2.1.14
Run Code Online (Sandbox Code Playgroud)
composer install
Run Code Online (Sandbox Code Playgroud)