1
我有一個項目,其中作曲家用於安裝Nette Framework和一個私人包在私人作曲家庫中。作曲家是否優先考慮私人包裹的要求?
項目的composer.json:
...
"require": {
"php": ">= 5.3.7",
"nette/nette": "2.1.*",
"myrepo/private-package": "*"
},
"minimum-stability": "dev",
"repositories": [
{
"type": "composer",
"url": "http://myrepo.org"
}
]
...
私人包的composer.json:
...
"require": {
"php": ">= 5.3.7",
"nette/nette": "2.2.*"
},
...
正如你可以看到該項目需要•奈特2.1.*
。然而,私人包裹需要Nette版本2.2.*
。
如果我運行composer install
,作曲家安裝2.2.*
版本的Nette。這不符合項目的composer.json(需要2.1.*
)。
我知道這兩項要求都無法實現。但爲什麼作曲家不打印出錯誤呢?私人存儲庫是否具有某種優先級?
您確定要安裝最新的「dev-master」提交嗎?該分支曾經是版本2.1.x,並且如果您的本地composer.lock引用了2.2以前的開發時間的提交,則版本要求將被滿足而不會有任何投訴。但這也是爲什麼在Composer中使用分支並不是最好的想法的另一個例子。 – Sven
確實這是最近的提交。我總是刪除composer.lock,整個供應商文件夾和作曲家的緩存,但這仍然發生。 – tsusanka
順便說一句,如果我將第二個需求更改爲2.2。*它仍然用來代替項目的2.1。*。我會相應地編輯問題,這比'dev-master'更好。 – tsusanka