如果我在多个目录中有多个 composer.json,如何安装带有作曲家的依赖项


How can I install dependencies with composer if I have multiple composer.json in multiple directories?

例如,假设我们有这样的东西:

.
├── app
│   ├── module1
│   │   └── composer.json
│   └── module2
│       └── composer.json
└── composer.json

在每个composer.json中,我们都有不同的依赖关系。

如何使用单个命令安装所有需要的软件包?

例如,您可以创建一个组合必要步骤的Makefile

尽管如此,您可以通过使用 --working-dir 选项指定工作目录(包含这些composer.json文件的目录)的路径来安装所有composer.json文件的依赖项。

请参阅 https://getcomposer.org/doc/03-cli.md#global-options:

--

working-dir (-d):如果指定,则使用给定的目录作为工作目录。

Makefile

下面是一个示例:

.PHONY: composer
composer:
    composer install --working-dir app/module/1
    composer install --working-dir app/module/2
    composer install

然后运行

$ make composer

或者,看看beberlei/fiddler,看看Benjamin Eberlei的带有PHP和Composer的Monolithic Repository

> 从 ~2016 开始,您可以使用具有本机支持的作曲家本地包

对于您的示例,只需编辑composer.json

{
    "repositories": [
        { "type": "path", "url": "app/module1" },
        { "type": "path", "url": "app/module2" }
    ]
}

并运行:

composer update

仅此而已:)