当我运行composer install时,它将安装我的所有"require"和另一个包的"require".
我的composer.json
{ "name": "my_app", "require": { "some/package": "0.0.0" } }
"孩子"的依赖
{ "name": "some/package", "require": { "zendframework/zend-mail": "2.4.*@dev", "soundasleep/html2text": "~0.2", "mpdf/mpdf": "6.0.0", "endroid/qrcode": "1.*@dev" } }
我知道可以忽略php扩展,但是这些第二个要求包呢?
您可以使用replace
composer.json 的属性忽略要下载的包:https://getcomposer.org/doc/04-schema.md#replace
这样你告诉作曲家,你自己采取或照顾该包的内容.
这可以帮助您忽略您确定不需要的包,但它有点hacky.所以要注意一些事情(比如测试)可能会破坏.更好的方法是从原始包的维护者处请求补丁,以使需求可选(通过suggest
属性).
编辑: "禁用"要求的
示例zendframework/zend-mail
:
{ "name": "my_app", "require": { "some/package": "0.0.0" }, "replace": { "zendframework/zend-mail": "*" } }