如何在 Composer 中强制依赖库的版本
How to force version of dependence library in Composer
我有一个 composer.json,其中包含库 nette/nette,它依赖于其他库 nette/deprecated 并且这个嵌套库在新版本中有一个错误。所以我需要强制 Composer 加载以前版本的嵌套库 nette/deprecated。问题是主库 nette/nette 需要版本 "nette/nette": "~2.4.0" 但所有 2.4 和 2.5 版本都取决于有问题的 nette/deprecated 图书馆。如何强制 Composer 加载完全需要的嵌套 nette/deprecated 库版本?看来这是不可能的,或者我对 Composer 功能的了解不够。
谢谢。
如果您知道某个依赖项存在错误或干扰了您代码中的某些内容,您可以在 composer.json.
中将其标记为冲突
{
"...",
"require": {
"..."
},
"conflict": {
"nette/deprecated": ">2.4.0,<3.0.0"
}
}
这将排除 2.4.0
之后且小于 3.0.0
的所有内容,但您可以将值更改为您需要的任何值。通过这种方式,您可以清楚地传达某些版本是不受限制的,而无需明确将其声明为根依赖项。
我有一个 composer.json,其中包含库 nette/nette,它依赖于其他库 nette/deprecated 并且这个嵌套库在新版本中有一个错误。所以我需要强制 Composer 加载以前版本的嵌套库 nette/deprecated。问题是主库 nette/nette 需要版本 "nette/nette": "~2.4.0" 但所有 2.4 和 2.5 版本都取决于有问题的 nette/deprecated 图书馆。如何强制 Composer 加载完全需要的嵌套 nette/deprecated 库版本?看来这是不可能的,或者我对 Composer 功能的了解不够。 谢谢。
如果您知道某个依赖项存在错误或干扰了您代码中的某些内容,您可以在 composer.json.
中将其标记为冲突{
"...",
"require": {
"..."
},
"conflict": {
"nette/deprecated": ">2.4.0,<3.0.0"
}
}
这将排除 2.4.0
之后且小于 3.0.0
的所有内容,但您可以将值更改为您需要的任何值。通过这种方式,您可以清楚地传达某些版本是不受限制的,而无需明确将其声明为根依赖项。