请求的包…在任何版本中都找不到



当我想要求我的项目时,出现以下错误:

请求的包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分支
{
    "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在任何版本中都找不到。

请求的包需要是一个git文件夹,包含已提交的和现有的composer.json文件。然后要引用特定的分支,需要添加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上搜索错误文本时的第一响应,因此我也将在这里放置我的修复,尽管不是100%与op相关。

当您需要repo时,您需要确保您的require语句与编写器中的项目名称匹配。

因此,如果名称在框架项目中为"name": "mvc-php/app-framework",,则需要:

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

当你要添加一个git的repo时,这个更适用。尤其是在分叉的时候,有时候git的url可能与编译器不同。json的名字。

另外(这是与OP相关的部分),您现在需要在需要时执行dev-branch_name而不是branch_name@dev。我不知道这是什么时候改变的,或者旧的方法是否不能使用。但这是现在的编写器文档中说的。

如果你想让Composer检出一个分支而不是一个标签,你需要使用特殊的dev-*前缀
将它指向分支Composer文档-版本和约束-分支

另一个需要注意的问题:

我更改了我开发的包的名称,并且正在测试它的分支。我已经遵循了上面提到的所有正确的命名约定,但仍然得到了给定的错误。

事实证明,对于名称更改进行拾取,您必须在包repo的主分支(对我来说是Master)的composer.json中更新包名称,即使您在项目中不使用该分支。

需要注意的是,如果您没有将自己的镜像源添加到全局变量中,则在未找到子场景的地方会出现错误。你可以在composer.json中添加:

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

相关内容

  • 没有找到相关文章

最新更新