【问题标题】:Install Custom basic laravel Package安装自定义基本 laravel 包
【发布时间】:2018-02-28 05:31:22
【问题描述】:

我已经创建了自定义的基本 Laravel 包,并将其上传到我的 git-hub 帐户...

所以我想将该软件包从 git-hub 安装到我本地服务器中的新 Laravel 应用程序中......

我正在使用 Laravel 5.5 版 以下是我的Composer.Json 代码

{

   "name": "johnsmithamk/message",

    "version" : "0.1",
    "description": "Sample Package in Vendor folder for laravel",
    "type": "project",
    "license": "MIT",
    "authors": [
        {
            "name": "John Smith",
            "email": "test@gmail.com"
        }
    ], 
    "require": { 
        "php": ">=5.5.9",
        "illuminate/support": "5.1.x|5.2.x|5.3.x|5.4.x|5.5.x",
        "johnsmithamk/message": "0.0.1.*@beta",         
    }, 

    "autoload":{
        "psr-4":{
            "test\\message\\": "src"
        }
    },

    "extra": {

        "laravel": {
            "providers": [
                "test\\message\\MessageServiceProvider"
            ]
        }
    },

    "minimum-stability": "dev"
}

我正在终端中使用以下命令安装软件包

composer require johnsmithamk/message

但在运行上述命令后,我收到以下错误:--

[无效参数异常]
找不到适合您的任何版本的包 johnsmithamk/message 最小稳定性(稳定)。检查包裹拼写或您的最低要求 -稳定性

需要 [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] []...

谢谢

【问题讨论】:

    标签: laravel-5.3


    【解决方案1】:

    好的,在阅读了您的 cmets 之后,我相信我知道您的问题是什么。我认为您不明白您需要两个不同的 composer.json 文件。你已经创建了一个名为“message”的包,你希望能够在 Laravel 项目中使用它。对于该包,您应该使用您最初在问题中发布的代码,除非您应该删除以下行:

    "johnsmithamk/message": "[versionnum]"
    

    您告诉 Composer 的是,您的包是其自身的依赖项,这没有任何意义。

    那么你需要在你的 Laravel 项目的根目录中创建一个新的 composer.json。你必须在那个 composer.json 中添加我给你的代码,即:

    "minimum-stability": "dev",
    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/johnsmithamk/message"
        }
    ],
    "require": {
        "johnsmithamk/message": "dev-master"
    }
    

    总而言之,Github 上的 composer.json 是用于你的“消息”包的——它包含该包依赖项的列表。然后你想在你的新包中包​​含那个包,这就是你添加存储库配置的地方,并需要你的消息包。

    【讨论】:

    • 哪一套?您是否尝试将您的 repo 添加到 packagist.org 或直接从 github 安装?您收到什么错误消息?
    • 我添加了这个代码 "repositories": [ { "type": "git", "url": "github.com/johnsmithamk/message.git" } ], "require": { "php": ">= 5.5.9", "illuminate/support": "5.1.x|5.2.x|5.3.x|5.4.x|5.5.x", "johnsmithamk/message": "master" }, 得到同样的错误... .但没有将repo添加到packagist.org..是否必须将repo添加到packagist.org...?
    • 好的,我更新了我的答案。这就是您在 composer.json 中所需要的。请注意,我在 URL 和“最低稳定性”配置中添加了“https://”。去掉“php”和“illuminate/support”的要求。这些将作为主包的依赖项包含在您的供应商目录中 - 将它们也包含在您的项目 composer.json 中是多余的。
    • 现在我更新 composer.json 文件代码如下 "minimum-stability": "dev", "repositories": [ { "type": "git", "url": "github.com/johnsmithamk/message.git " } ], "require": { "johnsmithamk/message": "dev-master" },但得到同样的错误:(
    • 您似乎没有在存储库的 URL 部分添加“https://”。它需要这样,否则 Composer 会认为该软件包安装在本地文件系统上名为 github.com 的文件夹中。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2018-07-29
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多