php - Composer 抛出错误 "Could not find package with stability stable."

标签 php composer-php cakephp-3.0

我尝试用 composer 发布一个项目。该项目驻留在 github 上,并通过 packagist.org 发布。

但是当我尝试使用 composer 创建我的项目时,它失败并显示以下错误消息:

"Could not find package madskullcreations/simplicity with stability stable."

我使用以下命令:

composer create-project madskullcreations/simplicity

composer.json 包含以下内容:

{
    "name": "madskullcreations/simplicity",
    "description": "Website made simple!",
    "homepage": "https://madskullcreations.com",
    "type": "project",
    "license": "GPL-3.0-or-later",
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.6",
        "cakephp/cakephp": "3.5.*"
    }
}

我的存储库只包含一个用于测试的文件。怎么了?我试图删除依赖项,整个“require”-block,但没有真正的改变......

像我这样的初学者,我什至不知道在哪里定义包“稳定性”,在 github 或 packagist 上找不到任何东西。

请帮我开始吧!


工作解决方案:

我最终在 Flying 的帮助下完成了它的工作,请在下面查看他的回答。因为我认为让 Composer 开始工作有点复杂,我试着把我为让它工作所做的步骤放在这里:

  1. 在 github 上创建一个存储库。
  2. 用你的依赖创建一个 composer.json。检查它。
  3. 释放它。某处有一个“发布”链接,使用它并为发布命名。

现在,要在测试期间跳过 packagist.org 步骤,请按照以下步骤操作。在 packagist.org 上发布一个不起作用的解决方案(就像我所做的那样)不是好的风格,并且将所有必要的步骤重复十遍一点也没有乐趣。

在某处创建一个本地文件夹,并在那里创建一个新的 composer.json 文件。

把这样的东西放进去:

{
  "require": {
    "madskullcreations/simplicity":"dev-master@dev"
  },
  "repositories": [
    {
       "type": "vcs",
       "url": "https://github.com/madskullcreations/simplicity" 
    }
  ]
}

在您的新文件夹中运行以下命令:

composer create-project

现在应该下载并安装您的项目。

并且,阅读 composer 给出的错误信息并确保你理解它们。它们很有用。令我头疼的是缺少 PHP 扩展 (intl),我假设它使用的是 php 7.1 版,而它实际上听取了我在 composer.json 文件中的要求,并使用了 v5.6。 (我在 iis 中安装了几个 php 版本,但我的模糊头脑没有考虑到这一点。)

最佳答案

包稳定性要求定义为 minimum-stability 您的项目composer.json设置,而不是外部包的composer.json

你的 madskullcreations/simplicity包有no releases已定义,因此其中唯一可用的分支是 dev-master“release”(它可以在 Packagist 上 package page 的右侧看到)。此“发布”具有“开发”稳定性级别。

由于上述原因,如果您需要将此包添加到您的项目中而无需设置 minimum-stability: dev 或未指定包的稳定性要求为

"require": {
  "madskullcreations/simplicity":"dev-master@dev"
} 

(注意 @dev 版本要求)提示缺少兼容版本是 Composer 的正确行为。

此外,将您的测试包发布到公共(public)注册表(如 Packagist)通常是一种不好的做法。相反,您应该按照说明在 composer.json 中使用直接存储库规范 here .在您的情况下,它将是:

"repositories": [
  {
     "type": "vcs",
     "url": "https://github.com/madskullcreations/simplicity" 
  }
]

指定直接存储库引用后 - 从 Packagist 中删除您的测试包将是安全的,除非您真的想与开源社区共享它。

关于php - Composer 抛出错误 "Could not find package with stability stable.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48034347/

相关文章:

php - 使用未被识别类 'MailChimp' 未找到

cakephp-3.0 - beforeMarshal 验证失败时不修改请求数据

php - 如何从选择下拉菜单将数据发布到数据库?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php - Yii 中的 CMenu 样式

php - 错误 : Transport config "Smtp" is missing in cakephp 3. x

cakephp - 使用 `contain` 会使 CakePHP 3 find() 调用变慢,而底层查询本身仍然很快

php - Ajax 在非常奇怪的情况下拒绝发送数据

amazon-web-services - AWS Elastic Beanstalk和Composer

php - composer 命令什么都不做