首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以忽略Composer配置中的子依赖关系?

是否可以忽略Composer配置中的子依赖关系?
EN

Stack Overflow用户
提问于 2016-01-07 00:13:27
回答 5查看 35K关注 0票数 25

当我运行composer install时,它会安装我所有的"require“和其他软件包的"require”。

我的composer.json

代码语言:javascript
复制
{
    "name": "my_app",
    "require": {
        "some/package": "0.0.0"
    }
}

“孩子”依赖项

代码语言:javascript
复制
{
    "name": "some/package",
    "require": {
        "zendframework/zend-mail": "2.4.*@dev",
        "soundasleep/html2text": "~0.2",
        "mpdf/mpdf": "6.0.0",
        "endroid/qrcode": "1.*@dev"
    }
}

我知道可以忽略php扩展,但是第二个require包呢?

EN

回答 5

Stack Overflow用户

发布于 2017-07-18 19:09:37

您可以使用composer.json的replace属性忽略要下载的包:https://getcomposer.org/doc/04-schema.md#replace

这样您就可以告诉composer,您可以自己处理或处理包中的内容。

这可以帮助你忽略一个你确定不需要的包,但它有点老套。所以要注意一些事情(比如测试)可能会崩溃。一种更好的方法是向原始包的维护者请求一个补丁,以使需求成为可选的(通过suggest属性)。

编辑:

用于“禁用”对zendframework/zend-mail的要求的示例

代码语言:javascript
复制
{
    "name": "my_app",
    "require": {
        "some/package": "0.0.0"
    },
    "replace": {
        "zendframework/zend-mail": "*"
    }
}
票数 44
EN

Stack Overflow用户

发布于 2016-01-07 02:05:59

我知道忽略php扩展是可能的,但是第二个require包呢?

可以,您可以使用--ignore-platform-reqs忽略php、hhvm、lib-*和ext-*平台要求并强制安装,即使本地计算机不满足这些要求。

但是,我不确定你是不是在问你的问题。在您的应用程序中需要一个没有依赖项的包的用例是什么?这不是使用Composer的主要原因吗?

No,这是不可能的,除非你正在寻找require --no-update,它禁用了依赖项的自动更新。请看一下CLI options for requireinstall

票数 15
EN

Stack Overflow用户

发布于 2019-02-25 18:48:29

另一种解决方法是:

Clone to >将软件包克隆到存储库并修复您的composer.json添加存储库:

代码语言:javascript
复制
"repositories": [
    { "type": "git", "url": "https://github.com/zhovtyj/mailchimp-laravel" }
],
"require": {
    "php": "^7.1.3",
    ***
    "skovmand/mailchimp-laravel": "dev-master",
},
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34637657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档