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