【问题标题】:How do you get composer to install a non-composer package?你如何让作曲家安装非作曲家包?
【发布时间】:2013-05-26 17:26:17
【问题描述】:

我正在尝试让作曲家从这个项目中下载以下库,但是它没有 composer.json 文件,所以我不确定这是否可能。

{
    "require" : {
        "fguillot/picoFeed" : "*"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/fguillot/picoFeed"
        }
    ]
}

错误:

[Composer\Repository\InvalidRepositoryException]
在的任何分支或标签中都找不到有效的 composer.json https://github.com/fguillot/picoFeed,无法加载包 来自它。

【问题讨论】:

    标签: php composer-php packagist


    【解决方案1】:

    要包含非作曲家存储库,您需要设置package repository。这会给你类似的东西:

    {
        "repositories": [
            {
                "type": "package",
                "package": {
                    "name": "fguillot/picoFeed",
                    "version": "dev-master",
                    "source": {
                        "url": "https://github.com/fguillot/picoFeed",
                        "type": "git",
                        "reference": "origin/master"
                    }
                }
            }
        ],
        "require": {
            "fguillot/picoFeed": "dev-master"
        }
    }
    

    【讨论】:

    • 这样的“包”是否可以更改安装路径?
    【解决方案2】:

    作为对@George 答案的补充,关于@DavidOliver 的comment,以下是您应该能够更改包安装目标的方式:

    "repositories" : [
        {
            "type"    : "package",
            "package" : {
                "name"    : "vend0r/p4ckage",
                "version" : "dev-master",
                "type"    : "foo-library",
                "dist"    : {
                    "url"  : "https://github.com/vend0r/p4ckage.git",
                    "type" : "vend0r/p4ckage"
                },
                "source"  : {
                    "url"       : "https://github.com/vend0r/p4ckage.git",
                    "type"      : "git",
                    "reference" : "origin/master"
                }
            }
        }
    ]
    ...
    "extra" : {
        "installer-paths" : {
            "libraries/footype" : [
                "type:foo-library"
            ],
        }
    }
    ...
    "require" : {
        "vend0r/p4ckage" : "dev-master"
    }
    

    【讨论】:

    • 我偶然发现了如何将非作曲家存储库安装到自定义路径;事实证明,仅需要 composer/installers: stackoverflow.com/a/20442240/1065925 是无法做到的。在同一页面上还有oomphinc/composer-installers-extender 的解决方案。
    猜你喜欢
    • 2014-02-26
    • 2018-10-21
    • 2014-01-29
    • 2021-08-07
    • 2017-09-15
    • 2023-03-03
    • 2017-03-13
    • 1970-01-01
    • 2018-07-19
    相关资源
    最近更新 更多