簡體   English   中英

composer:有沒有辦法為包存儲庫指定首選項順序?

[英]composer : is there a way to specify a preference order for package repositories?

我正在使用packagistfiregento上的package vendorName/moduleName (Magento擴展)。

在我的composer.json文件中,我有:

"require": {
   ....................,
   ...................,
  "vendorName/moduleName":"*"
},
"repositories": [
  ......................,
  ....................,
  {
    "type": "composer",
    "url": "https://packages.firegento.com"
  }
],

由於Composer已預先配置為使用packagist.org ,因此vendorName/moduleName是從packagist加載的。

我想強制從firegento加載vendorName/moduleName

我試着添加:

"repositories": [
  {
    "packagist": false
  },

但是,作曲家將不再在packagist中搜索:這不是我想要的。(因為packagist中也有有用的包...)

我想我可以用

composer config --global --unset repositories.packagist

然后

composer config --global repositories.firegento composer https://packages.firegento.com
composer config --global repositories.packagist composer https://packagist.org

以我的首選順序添加存儲庫(我不確定它是否有效......)。

有沒有更好/更簡單的方法來達到我的目的? 我更喜歡編輯composer.json而不是運行全局配置命令,但它可能不可能。

好,

我想我在這里找到了答案:

最終,存儲庫候選者僅按其定義順序進行評估。 根據定義,Packagist在內部添加為最后一個(盡管您可以禁用它),以確保始終首選本地副本(如果解析器設置允許)。

這意味着,如果我定義了firegento在我的回購composer.json ,然后作曲家將加載包vendorName/moduleNamefiregentopackagist 我認為這是相反的行為; 我錯了。

另一種有益的意見在這里

存儲庫定義的順序很重要。 但是,無論如何,作曲家仍將搜索所有存儲庫,因為它可能是稍后定義的存儲庫具有您需要的更新版本的軟件包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM