Composer php 是否有任何简单的方法可以使用composer排除开发环境中的依赖项?

Composer php 是否有任何简单的方法可以使用composer排除开发环境中的依赖项?,composer-php,Composer Php,我使用composer来管理WordPress项目,在开发中不需要一些插件。所以基本上与require-dev相反 如果有一个名称,我猜它应该是require-production或exclude-dev。因此,只有在运行composer--production时,才会安装此对象中的需求。这不是一个真正的标志,只是试图让解决方案的路径变得清晰 "require-production": { "example/caching-plugin": "1.0" } 有没有办法做到这一点? 我可

我使用composer来管理WordPress项目,在开发中不需要一些插件。所以基本上与require-dev相反

如果有一个名称,我猜它应该是require-production或exclude-dev。因此,只有在运行
composer--production
时,才会安装此对象中的需求。这不是一个真正的标志,只是试图让解决方案的路径变得清晰

"require-production": {
    "example/caching-plugin": "1.0"
}
有没有办法做到这一点?


我可以用php函数实现这一点,但我确实希望将依赖关系管理保留在一个位置

至于解决方法,您可以定义以指定要忽略的包列表,例如

{
    "require": {
        "example/caching-plugin": "*"
    },
    "replace": {
        "example/ignore-this": "*"
    }
}
这会告诉Composer您正在替换这些依赖项,因此它们不会被下载


另一种方法是通过添加以下部分来执行代码修补:

"extra": {
  "patches": {
    "vendor/package": {
      "Bug #1234: Something is wrong": "patches/1234.diff"
    }
  }
}
要使上述功能正常工作,您需要首先安装
cweagans/composer修补程序
package,例如:

composer require "cweagans/composer-patches:~1.0"
然后,您可以在特定环境的不同分支上提供不同的修补程序文件


还有
scripts
属性,您可以在其中调用一些脚本或命令,这些脚本或命令可以检查您的环境,并且根据主机名,可以调用某些命令来执行一些后期处理,例如删除一些文件或文件夹