Composer排除特定版本

Dan*_*ack 11 composer-php

如何编写排除库的多个特定版本的require规则?

例如,我对库的任何1.7.*版本都有要求

"require": {
    "some/lib": "~1.7"
}
Run Code Online (Sandbox Code Playgroud)

但后来我发现版本1.7.3中的库存在问题,并希望防止安装,这可以通过以下方式完成:

"require": {
    "some/lib": ">=1.7, <1.7.3 | >1.7.3"
}
Run Code Online (Sandbox Code Playgroud)

哪个已经变丑了.然后我们发现该库的另一个问题,并希望排除版本1.7.7.尝试使用与上面相同的语法似乎很糟糕,什么是排除特定版本的库的更好方法?

TL:DR有这样的语法:

"require": {
    "some/lib": "~1.7, !1.7.3, !1.7.5"
}
Run Code Online (Sandbox Code Playgroud)

这样可行?

Dan*_*ack 17

当然,在询问后5分钟找到答案:

"require": {
    "some/lib": "~1.7, !=1.7.3, !=1.7.5"
}
Run Code Online (Sandbox Code Playgroud)

  • 我必须删除“,”才能使排除工作。 (2认同)