簡體   English   中英

在任何版本中都找不到請求的包...

[英]The requested package … could not be found in any version

當我想要我的項目時,會出現以下錯誤:

在任何版本中都找不到請求的包mvc-php / framework,包名中可能有拼寫錯誤。

“mvc-php / framework”是一個git文件夾。

{
    "name": "mvc-php/app",
    "repositories": [
        {
            "type": "path",
            "url": "/Users/youri/Documents/Github/framework"
        }
    ],
    "require": {
        "php": ">=7.0",
        "mvc-php/framework": "master"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    }
}

項目我想要求:

{
    "name": "mvc-php/framework",
    "description": "PHP MVC framework",
    "autoload": {
        "psr-4": {
            "Mvc\\" : "src/"
        }
    },
    "require": {
        "php": ">=7.0"
    }
}

您必須要求branchName@dev ,而不僅僅是分支名稱

https://getcomposer.org/doc/articles/versions.md#branches

{
    "name": "mvc-php/app",
    "repositories": [
        {
            "type": "path",
            "url": "/Users/youri/Documents/Github/framework"
        }
    ],
    "require": {
        "php": ">=7.0",
        "mvc-php/framework": "master@dev"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    }
}

在任何版本中都找不到請求的包X / Y.

請求的包需要是一個包含已提交和現有composer.json文件的git文件夾。 然后要引用特定的分支,你需要添加dev-前綴,所以dev-master而不是master

這是最小的工作示例:

文件: composer.json

{
  "require": {
    "local/my_package": "dev-master"
  },
  "repositories": [
    {
      "packagist.org": false
    },
    {
      "type": "path",
      "url": "my_package/"
    }
  ]
}

文件: my_package/composer.json

{
  "name": "local/my_package",
  "require-dev": {
    "symfony/console": "*"
  }
}

注意:上面的文件位於本地Git存儲庫下。 要創建一個,請運行: git init && git commit -am 'Files'

故障排除

要解決此問題,請運行:

composer install -vvv

還要考慮運行: composer diagnose以識別常見的Composer錯誤。

由於這是在Google上搜索錯誤文本時的第一個響應,我也會在此處提出我的修復,盡管與OP沒有100%的相關性。

當您需要repo時,需要確保您的requires語句與項目的composer.json中的項目名稱相匹配。

因此,如果名稱是"name": "mvc-php/app-framework",在框架項目中,則需要需要:

"require": {
  "mvc-php/app-framework": "dev-master"
},

當您添加git倉庫時,這更適用。 特別是在分叉時,有時git url可能與composer.json名稱不同。

另外(這是與OP相關的部分),您現在需要在需要時執行dev-branch_name而不是branch_name@dev 我不知道什么時候改變了,或者舊的方法是不可用的。 但這正是當前作曲家文檔現在所說的。

如果您希望Composer簽出分支而不是標記,則需要使用特殊的dev-*前綴將其指向分支
Composer文檔 - 版本和約束 - 分支

另一個需要意識到:

我改變了我開發的包的名稱,只是測試了它的一個分支。 我遵循了上面提到的所有正確的命名約定,但仍然得到了給定的錯誤。

事實證明,要獲取名稱更改,您必須更新包repo( Master for me)的主分支上的composer.json的包名稱,即使您未在項目中使用該分支。

請務必注意,如果未將自己的鏡像源添加到全局變量,則會在未找到子場景的情況下發生錯誤。 你可以在composer.json中添加它:

"repositories":[
 {
  "type":"composer",
  "url":"https://packag"
 }
],

暫無
暫無

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

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