作曲家抛出错误 "Could not find package with stability stable."
Composer throws error "Could not find package with stability stable."
我尝试用 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" 块,但没有真正的改变...
像我这样的初学者,我什至不知道在哪里定义包 "stability",在 github 或 packagist 找不到任何东西。
请帮我开始吧!
工作解决方案:
我最终在 Flying 的帮助下完成了它的工作,请在下面查看他的回答。因为我认为让 composer 正常工作有点复杂,我试着把我为让它工作所做的步骤放在这里:
- 在 github 创建存储库。
- 用你的依赖创建一个 composer.json。签到。
- 释放它。某处有一个"Releases" link,使用它并给发布一个名字。
现在,要在测试期间跳过 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-extension (intl),我假设它使用的是 php 7.1 版,而它实际上听取了我在 composer.json 文件中的要求,并使用了 v5。 6. (我在iis里安装了好几个php版本,但是我的脑袋没考虑到。)
包的稳定性要求被定义到你的项目的composer.json
的minimum-stability
设置中,而不是外部包的composer.json
。
您在 Packagist 上的 madskullcreations/simplicity package have no releases defined so the only branch that is available in it - is dev-master
"release" (it can be seen at the right side of package page)。此 "release" 具有 "dev" 稳定性级别。
由于上述原因,如果您需要将此包添加到您的项目中而无需设置 minimum-stability: dev
或未将包的稳定性要求指定为
"require": {
"madskullcreations/simplicity":"dev-master@dev"
}
(注意 @dev
版本要求)Composer 抱怨缺少兼容版本是正确的行为。
此外,将您的测试包发布到 public 注册表(如 Packagist)通常是一种不好的做法。相反,您应该按照 here 的说明在您的 composer.json
中使用直接存储库规范。在你的情况下它将是:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/madskullcreations/simplicity"
}
]
指定直接存储库引用后 - 从 Packagist 中删除您的测试包将是安全的,除非您真的想与开源社区共享它。
我尝试用 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" 块,但没有真正的改变...
像我这样的初学者,我什至不知道在哪里定义包 "stability",在 github 或 packagist 找不到任何东西。
请帮我开始吧!
工作解决方案:
我最终在 Flying 的帮助下完成了它的工作,请在下面查看他的回答。因为我认为让 composer 正常工作有点复杂,我试着把我为让它工作所做的步骤放在这里:
- 在 github 创建存储库。
- 用你的依赖创建一个 composer.json。签到。
- 释放它。某处有一个"Releases" link,使用它并给发布一个名字。
现在,要在测试期间跳过 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-extension (intl),我假设它使用的是 php 7.1 版,而它实际上听取了我在 composer.json 文件中的要求,并使用了 v5。 6. (我在iis里安装了好几个php版本,但是我的脑袋没考虑到。)
包的稳定性要求被定义到你的项目的composer.json
的minimum-stability
设置中,而不是外部包的composer.json
。
您在 Packagist 上的 madskullcreations/simplicity package have no releases defined so the only branch that is available in it - is dev-master
"release" (it can be seen at the right side of package page)。此 "release" 具有 "dev" 稳定性级别。
由于上述原因,如果您需要将此包添加到您的项目中而无需设置 minimum-stability: dev
或未将包的稳定性要求指定为
"require": {
"madskullcreations/simplicity":"dev-master@dev"
}
(注意 @dev
版本要求)Composer 抱怨缺少兼容版本是正确的行为。
此外,将您的测试包发布到 public 注册表(如 Packagist)通常是一种不好的做法。相反,您应该按照 here 的说明在您的 composer.json
中使用直接存储库规范。在你的情况下它将是:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/madskullcreations/simplicity"
}
]
指定直接存储库引用后 - 从 Packagist 中删除您的测试包将是安全的,除非您真的想与开源社区共享它。