有什么简单的方法可以使用composer排除开发环境中的依赖关系吗?



我正在使用composer来管理一个WordPress项目,在开发中不需要一些插件。基本上与需求开发相反。

如果要给它起个名字的话,我猜应该是require-production或者exclude-dev。所以这个对象中的需求只有在运行composer --production时才会被安装。这不是一个真正的标志,只是试图使解决方案的路径清晰。

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

有办法做到这一点吗?

我可以用一个php函数来做到这一点,但我真的想保持我的依赖管理在一个位置

作为变通方法,您可以定义replace属性来指定要忽略的包列表,例如

{
    "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属性,您可以调用一些脚本或命令,可以检查您的环境,并根据主机名,可以调用某些命令做一些后处理,如删除一些文件或文件夹。

相关内容

  • 没有找到相关文章

最新更新