Composer VCS存储库未加载依赖项

时间:2015-04-09 10:04:53

标签: composer-php

我通过编辑器包含一个私有git存储库,并且它按照预期从bitbucket加载,但是我在我的私有包中将代码定义为公共依赖。

我的私有包已加载,但未添加任何依赖项。我已经读过,在使用存储库时,composer不支持递归加载依赖项:https://getcomposer.org/doc/faqs/why-can%27t-composer-load-repositories-recursively.md

但是我对此的理解是我的私有存储库无法定义另一个私有存储库,但仍应能够使用packagist.org上定义的公共存储库

私人存储库composer.json:

{
    "name": "private/dependancy",
    "description": "Private git dependency",
    "type" : "library",
    "require-dev": {
        "codeception/codeception": "*"
    }
}

Project' composer.json(调整到相关部分)

{
    "name": "primary/project",
    "description": "Main project including a vcs dependancy",
    "require": {
        "private/dependancy" : "0.0.*"
    },
    "repositories":[
        {
            "type"   : "vcs",
            "url"    : "some repo",
            "options": {
                "ssh2": "some crednetials"
            }
        }
    ]
}

对此的任何指导将不胜感激。

1 个答案:

答案 0 :(得分:2)

Composer不会安装您自己需要的软件包的dev依赖项。

您的主要/项目需要私有/依赖,不需要任何其他内容。列出为require-dev的任何内容都没有安装,因为在开发私有/依赖时会考虑使用它,而不是在使用它时。

在主composer.json上运行Composer并且未明确排除dev依赖关系时,只有得到评估的另一件事是“autoload-dev”。

composer install --no-dev

不会安装任何dev依赖项,也不会为dev。

创建自动加载
composer install

将安装主项目的dev依赖项,并为dev创建自动加载 - 它永远不会安装通过require或require-dev添加的任何软件包的dev依赖项,也不会添加它们的autoload-dev。