【问题标题】:Composer install for subfolders为子文件夹安装 Composer
【发布时间】:2016-03-01 22:04:34
【问题描述】:

有人知道如何为所有子文件夹composer install 吗?作曲家支持吗?现在我需要在每个子文件夹中执行这个命令或者将所有子文件夹的vendor文件夹添加到git中。

我在 Linux 中找到了解决方案: https://www.bram.us/2014/02/16/installing-dependencies-in-all-subfolder-organised-projects/

但是如何在 Windows 中做同样的事情呢?

示例。

我在C:\grav 有一个项目,其中有composer.json。 但我在一些子文件夹中有C:\grav\user\pluginscomposer.json 的插件文件夹:

我也想在C:\grav 中执行composer install 来安装每个C:\grav\user\plugins\* 中的所有依赖项。

【问题讨论】:

  • 当您运行composer installcomposer require 时,它将扫描您的依赖项并将它们全部安装在vendor 中,无需在每个目录中运行composer install
  • 如果您确实需要在子文件夹中运行脚本(任何脚本),您可以使用作曲家的script hook—manual
  • @Michael 我的意思是我在根目录和每个子文件夹中都有composer.json
  • 请用一个例子更新你的问题。你不需要在vendor-folders 上运行composer install
  • @Michael 示例已添加。

标签: php windows composer-php grav


【解决方案1】:

Grav 插件或主题

为了支持 Grav 插件和主题的正确安装文件夹, 您需要将composer/installers 添加到插件的require 部分。

插件通常也会放在供应商文件夹中 - 但是,Grav 安装程序会告诉 Composer 在 Grav 项目中的正确位置,请参阅 见https://github.com/composer/installers/blob/master/src/Composer/Installers/GravInstaller.php#L6

因此,在为 grav 编写插件或主题时,每个 composer.json 必须将 type 指示为 grav-plugingrav-theme,否则 Composer 无法将包与安装程序匹配。

{
    "name": "your/some-grav-plugin",
    "type": "grav-plugin",
    "require": {
        "composer/installers": "^1.0.23"
    }
}

Grav 主项目

现在,在您的主重力项目composer.json 中,添加插件。

然后运行composer install。这意味着获取包,获取composer安装程序,根据包类型触发匹配的安装程序,并且grav安装程序将文件放入正确的文件夹中......


但是如何在 Windows 中做同样的事情呢?

嗯... Composer 跨平台工作。没问题。

【讨论】:

  • 所以我需要将type: grav-plugincomposer/installers 添加到我所有插件的composer.json 中?您还可以添加主项目composer.json 示例吗?谢谢!
  • 是的,当您添加typecomposer/installers 时,所有的grav 插件和主题将被自动识别并安装在正确的文件夹中。 |为主要composer.json 添加示例?没什么可展示的..您基本上将插件添加到require部分。就是这样。
猜你喜欢
  • 2018-08-27
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多