如何合并composer.json文件?

i5desfxk  于 2023-10-21  发布在  其他
关注(0)|答案(1)|浏览(128)

我在根文件夹/ECommerce中创建了自己的包。
这个目录包含composer.json和我的软件包代码。
当我想向ECommerce/composer.json添加一个新的包时,这是包工作所必需的,在调用$ composer update/install命令后,该包没有安装。
如果我将所需的软件包添加到根composer.json,它将被安装。
有没有可能合并这两个composer.json文件,或者我必须在项目结束时将composer.json从根文件夹复制到包文件夹
范例:

Structure: /
       - app
       - Ecommerce
         - ...
         - composer.json
       - resources
       - vendor
       - composer.json
       - ....

我在电子商务中添加了composer require nwidart/laravel-modules,但没有安装。
如果我在root中添加composer.json,那么它就被安装了。

rekjcdws

rekjcdws1#

简单地说,composer不支持多个嵌套或其他形式的composer.json文件,除了来自托管依赖项的文件。
每个项目都有一个composer.json,用于声明该项目的依赖项。
然后每个项目都有自己的composer.json文件来声明它们的依赖关系,当执行updateinstallrequire等时,整个事情都得到了解决。
当项目有更多的Composer依赖项时,在单独的目录中手动安装软件包是一个坏主意。如果这个包实际上是一个composer包,并声明了自己的依赖项,那么将其作为项目包(require your/package)安装,并让Composer在适当的时候处理依赖项。如果在your/package中添加/更改/删除依赖项,那么您将composer update根项目,并让Composer安装/更改所需的任何其他内容。
注意:有一个第三方插件似乎支持合并多个composer.json文件。
https://github.com/wikimedia/composer-merge-plugin
我自己没用过;虽然可能偶尔会用到这种结构,但它不是内置功能,通常情况下,您最好还是用“通常”的方式来做事情。

相关问题