【问题标题】:Composer VCS repository not loading dependanciesComposer VCS 存储库未加载依赖项
【发布时间】:2015-04-09 10:04:52
【问题描述】:

我通过 composer 包含了一个私有 git 存储库,它按预期从 bitbucket 加载,但是我在我的私有包中将代码接收定义为公共依赖项。

我的私有包已加载,但没有添加任何依赖项。我读到作曲家在使用存储库时不支持递归加载依赖项: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": "*"
    }
}

项目的 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"
            }
        }
    ]
}

我们将不胜感激。

【问题讨论】:

标签: composer-php


【解决方案1】:

Composer 不会安装您自己需要的包的开发依赖项。

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

只有在主 composer.json 上运行 Composer 时才会评估的另一件事是“autoload-dev”。

composer install --no-dev

不会安装任何开发依赖项,也不会为开发创建自动加载。

composer install

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

【讨论】:

    猜你喜欢
    • 2014-08-08
    • 2015-05-29
    • 2021-01-03
    • 2016-03-18
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    相关资源
    最近更新 更多