有没有简单的方法可以使用composer在dev环境中排除依赖?

时间:2016-10-15 06:00:09

标签: composer-php

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

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

"require-production": {
    "example/caching-plugin": "1.0"
}

有办法吗?

我可以使用php函数执行此操作,但我真的希望将我的依赖关系管理保存在一个位置

1 个答案:

答案 0 :(得分:0)

至于变通方法,您可以定义replace property以指定要忽略的包列表,例如。

{
    "require": {
        "example/caching-plugin": "*"
    },
    "replace": {
        "example/ignore-this": "*"
    }
}

这告诉Composer您正在替换这些依赖项,因此无法下载它们。

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

"extra": {
  "patches": {
    "vendor/package": {
      "Bug #1234: Something is wrong": "patches/1234.diff"
    }
  }
}

要使上述功能正常工作,您需要先安装cweagans/composer-patches个包,例如

composer require "cweagans/composer-patches:~1.0"

然后,您可以在特定环境的不同分支上提供不同的补丁文件。

还有scripts属性,您可以调用某些脚本或命令来检查您的环境,并根据主机名,可以调用某些命令来执行某些后处理,例如删除某些文件或文件夹。 / p>