有没有办法告诉作曲家每次我做composer update
时我都希望他忽略特定的套餐?
答案 0 :(得分:33)
您是否考虑过为要忽略的软件包指定所需的版本?例如:
"require": {
"some/package": "~1.2"
}
这可能会更新,因为您说的是任何版本> = 1.2,< 2.0,但如果严格说您只想要版本1.0,则不应该看到该软件包的任何更新:
"require": {
"some/package": "1.2"
}
答案 1 :(得分:5)
实际上我不知道是否有任何方法可以告诉composer
排除某个特定包的更新,但您可以告诉哪些包更新为
composer update <package> <package2>; // or
php composer.phar update <package> <package2>;
例如,
composer update foo/package1 bar/package2; // or
php composer.phar update foo/package1 bar/package2;
另外,我认为,如果你没有在composer.json
中列出它们(安装后删除),那么除非在列表中另有说明,否则它们不会更新。
来自Composer: 如果您只想安装或更新一个依赖项,可以将它们列入白名单:
$ php composer.phar update monolog/monolog [...]
更新(在互联网上找到但未经过测试)
为此,只需从composer.lock
答案 2 :(得分:2)
更新:仅适用于作曲家版本1.0.0-alpha6及更低版本。在版本1.0.0-alpha7及更高版本中使用它将删除&#34; require-dev&#34;中的所有包。
我相信如果你能在项目中负担得起,你现在可以给作曲家带来麻烦。类似于:将您不想更新的所有套餐放在"require-dev"
中,并使用composer update --no-dev
如果您运行composer install
,请小心,因为我记得它们将从您的项目中删除。
所有这些诡计都非常讨厌,所以我们应该等待官方的做法,亲自更新明确指定的包
答案 3 :(得分:1)
要忽略特定的套餐,您可以使用provide
(如果它是您自己的套餐的一部分)或replace
。这告诉Composer您希望提供/替换特定包,因此不会下载它。
以下是应该有效的df -h
文件示例:
composer.json
在此示例中,{
"require": {
"radic/tmp-underscore-php": "~1.2.0"
},
"replace": {
"patchwork/utf8": "*"
}
}
或patchwork/utf8
会忽略composer install
个包。
要排除特定版本,请参阅:Composer exclude specific versions。