【问题标题】:How can I install dependencies with composer if I have multiple composer.json in multiple directories?如果我在多个目录中有多个 composer.json,如何使用 composer 安装依赖项?
【发布时间】:2015-02-24 09:46:27
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php command composer-php


    【解决方案1】:

    例如,您可以创建一个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 的 Monolithic Repositories with PHP and Composer

    【讨论】:

      【解决方案2】:

      自~2016 您可以使用composer local packages,它具有原生支持。

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

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

      然后运行:

      composer update
      

      就是这样:)

      【讨论】:

      • 这允许安装在本地存在的软件包,但据我了解,原始发布者想知道如何安装/更新多个composer.json 文件的依赖项一个项目。
      猜你喜欢
      • 2016-02-22
      • 2020-07-24
      • 2015-07-14
      • 2015-11-16
      • 2013-12-05
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      相关资源
      最近更新 更多