尝试全局安装软件包时出现 Composer 问题

我将一个包上传到 packagist,并运行此命令以全局需要它:

composer global require emmajiugo/flutterwave-cli

此操作失败,输出如下:

我尝试更改composer.json文件中的一些内容,但仍然遇到问题。以下是我的composer.json文件:


{

    "name": "emmajiugo/flutterwave-cli",

    "description": "A CLI app that helps you test Flutterwave payment on the go and also generate sample apps.",

    "keywords": ["framework", "flutterwave", "rave", "rave cli", "flutterwave cli", "rave console", "flutterwave console", "cli"],

    "homepage": "https://flutterwave.com",

    "type": "project",

    "license": "MIT",

    "support": {

        "issues": "https://github.com/emmajiugo/flutterwave-cli/issues",

        "source": "https://github.com/emmajiugo/flutterwave-cli"

    },

    "authors": [

        {

            "name": "Chigbo Ezejiugo",

            "email": "emmajiugo@gmail.com"

        }

    ],

    "require": {

        "php": "^7.2.5",

        "laminas/laminas-text": "^2.7",

        "laravel-zero/framework": "^5.8",

        "padraic/phar-updater": "^1.0.6",

        "vlucas/phpdotenv": "^4.0",

        "yuloh/open": "^0.1.0"

    },

    "require-dev": {

        "mockery/mockery": "^1.3.1",

        "phpunit/phpunit": "^8.5"

    },

    "autoload": {

        "psr-4": {

            "App\\": "app/"

        }

    },

    "autoload-dev": {

        "psr-4": {

            "Tests\\": "tests/"

        }

    },

    "config": {

        "preferred-install": "dist",

        "sort-packages": true,

        "optimize-autoloader": true

    },

    "scripts": {

        "post-create-project-cmd": [

            "@php application app:rename"

        ]

    },

    "minimum-stability": "dev",

    "prefer-stable": true,

    "bin": ["flutterwave"]

}


慕丝7291255
浏览 139回答 3
3回答

函数式编程

您是否尝试过阅读错误消息?一行告诉你问题:emmajiugo/flutterwave-cli v1.3 需要 laravel-zero/framework ^7.0另一方面,您的composer.json要求"laravel-zero/framework": "^5.8"- 这两个要求显然不能一起工作。您应该在库中需要较低版本的 Laravel,或者在应用程序中需要更高版本的 Laravel

largeQ

Composer 的“全局安装”功能的工作原理是在特定目录中设置 Composer 项目并以正常方式管理它。正如手册所述:全局命令允许您运行其他命令,例如安装、删除、要求或更新,就像从 COMPOSER_HOME 目录运行它们一样。这只是管理存储在中央位置的项目的帮助程序,该位置可以保存您希望随处可用的 CLI 工具或 Composer 插件。这是理解您看到的输出的关键,输出如下:将当前目录更改为 /Users/emmanuelezejiugo/.composer此后发生的所有事情就好像您在该目录中运行普通的 Composer 命令一样。冲突的第一部分相当简单:emmajiugo/flutterwave-cli v1.3 需要 laravel-zero/framework ^7.0laravel-zero/framework v7.x 需要照亮/容器 ^7.0导致冲突的原因显示在消息末尾:照明/容器的安装请求(锁定于 v5.8.28)composer.json 这是指您已将该软件包“锁定”到当前正在安装软件包的项目中的特定版本。换句话说,您试图为该项目添加两个相互矛盾的需求。正如我们上面所确定的,该项目不是您的新库,它是作曲家在/Users/emmanuelezejiugo/.composer. 所以您需要更改的配置位于/Users/emmanuelezejiugo/.composer/composer.json.最简单的解决方案可能是不在该文件夹中安装库。如上所述,该composer global命令实际上除了为您更改目录之外没有做任何事情;大多数时候,您最好为每个项目或工具创建一个目录并在那里需要其依赖项,即使您只需要本地副本来运行某些命令。

跃然一笑

我运行composer global update并更新了所有必需的软件包。然后就做了composer global require repo-name/repo-package-name并且效果很好。
打开App,查看更多内容
随时随地看视频慕课网APP