我尝试用 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 开始工作有点复杂,我试着把我为让它工作所做的步骤放在这里:
- 在 github 上创建一个存储库。
- 用你的依赖创建一个 composer.json。检查它。
- 释放它。某处有一个“发布”链接,使用它并为发布命名。
现在,要在测试期间跳过 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/