可通过path仓库依赖本地包实现复用,如在主项目composer.json中添加path类型仓库并require对应包,确保本地包有正确name;不推荐使用已弃用的merge插件;建议通过脚本生成、monorepo或提取公共依赖为私有包来共享配置。

Composer 不支持直接在 composer.json 中“引用”另一个本地的 composer.json 文件像导入配置那样。但你可以通过以下方式实现类似效果,比如复用依赖或配置。
使用 Composer 的 Path Repositories(推荐)
如果你希望主项目依赖一个本地的 Composer 包(它有自己的 composer.json),可以通过 path 类型的仓库来实现。
在主项目的 composer.json 中添加:
{ "repositories": [ { "type": "path", "url": "../my-local-package" } ], "require": { "my/package": "*" }}
确保本地包(../my-local-package)的 composer.json 中定义了正确的 name 和 version 或启用了 preferred-install: source 以支持开发模式。
共享配置或依赖:使用 Composer Merge Plugin(已弃用,不推荐)
过去有人用 wikimedia/composer-merge-plugin 来合并多个 composer.json 文件,但它已被官方标记为弃用,且存在性能和兼容性问题。
目前没有广泛维护的“合并配置”插件。不建议用于新项目。
替代方案:脚本化生成或继承结构
如果目标是复用依赖列表或配置项,可考虑:编写脚本(如 PHP、Node.js 或 shell)动态生成多个项目的 composer.json 使用 monorepo 结构,通过一个根 composer.json 管理多个包 将公共依赖提取成私有包,通过 path 或私有 Satis/Squirrel 仓库引入
总结
不能直接“引用”另一个 composer.json,但可通过 path 仓库让项目依赖本地包。若想复用配置,应采用工程化手段而非试图合并文件。
基本上就这些。Composer 的设计是基于包管理,不是配置继承。合理拆分包结构比强行合并更可持续。
以上就是如何在composer.json中引用另一个本地的composer.json文件?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/133835.html
微信扫一扫
支付宝扫一扫