You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Composer依赖项目的installer-paths配置未生效问题咨询

解决Composer依赖项目的installer-paths不生效问题

这个问题的核心原因很明确:Composer的extra.installer-paths配置仅在根项目(也就是你执行composer install的第二个项目)中生效,依赖项目(第一个项目)里的这个配置不会被自动读取或合并。所以即使第一个项目定义了路径规则,第二个项目作为根项目,默认只会用自己的配置(或者无配置时使用默认路径)。

要让第一个项目的配置控制安装路径,不需要在第二个项目里覆写配置,推荐使用wikimedia/composer-merge-plugin来合并依赖项目的composer.json配置,具体步骤如下:

步骤1:在第二个项目中安装合并插件

执行以下命令安装插件:

composer require wikimedia/composer-merge-plugin:^2.0

步骤2:配置第二个项目的composer.json以合并第一个项目的配置

在第二个项目的composer.json中添加merge-plugin的配置,指定要合并第一个项目的composer.json,并且开启extra配置的深度合并:

{
  // 保留原有配置内容...
  "extra": {
    "merge-plugin": {
      "include": [
        "vendor/myusername/composer_test/composer.json"
      ],
      "merge-extra": true,
      "merge-extra-deep": true
    }
  }
}

步骤3:重新执行安装命令

现在执行composer install或者composer update,插件会自动把第一个项目里的installer-paths配置合并到第二个项目中,Drupal Core就会按照第一个项目指定的web/core路径安装了。

额外说明

  • 如果你把第一个项目的类型从project改成library,会更符合Composer的依赖规范(project类型通常作为根项目使用),不过这不是必须的,只要合并插件能正确读取它的composer.json即可。
  • 合并插件同样会处理minimum-stability和prefer-stable这类配置的合并,确保依赖版本规则和第一个项目保持一致。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:16:36