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