我试图用作曲家发布一个项目。该项目位于github,并通过packagist.org发布。
但是当我尝试使用composer创建我的项目时,它会失败并显示以下错误信息:
"无法找到包装madskullcreations /简单性和稳定性 。稳定"
我使用以下命令:
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.*"
}
}
我的存储库只包含一个用于测试的文件。怎么了?我试图删除依赖项,整个"要求" -block,但没有真正的变化......
初学者和我一样,我甚至不知道我在哪里定义包裹"稳定性",无法在github或packagist找到任何东西。
请帮助我开始吧!
工作解决方案:
我最终得到了飞行的帮助,看到他的答案进一步向下。因为我觉得让作曲家工作起来有点复杂,所以我试着把我做的步骤放到这里来实现:
现在,要在测试期间跳过packagist.org步骤,请按照以下步骤操作。在packagist.org上发布一个不起作用的解决方案(就像我做的那样)并不是一种好的风格,并且完成十次所需的所有步骤并不是一件好事。
在某处创建一个本地文件夹,并在那里创建一个新的composer.json文件。
把这样的东西放进去:
{
"require": {
"madskullcreations/simplicity":"dev-master@dev"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/madskullcreations/simplicity"
}
]
}
在新文件夹中运行以下命令:
composer create-project
现在应该下载并安装您的项目。
并且,阅读作曲家提供的错误消息,并确保您理解它们。它们很有用。我的头痛是缺少PHP扩展(intl),我认为它使用的是php 7.1版,而它实际上是在composer.json文件中听取了我的要求,并使用了v5.6。 (我在iis中安装了几个php版本,但我的模糊头并没有考虑到这一点。)
答案 0 :(得分:5)
软件包稳定性要求定义为您的项目 composer.json
的{{3}}设置,而不是外部软件包的composer.json
。
您的minimum-stability
软件包已定义madskullcreations/simplicity,因此其中唯一可用的分支是dev-master
“release”(可以在{{3}的右侧看到)在Packagist上)。这个“释放”具有“开发”稳定性水平。
由于上述原因,如果您要求将此软件包放入项目中,而无需设置minimum-stability: dev
或未指定软件包的稳定性要求
"require": {
"madskullcreations/simplicity":"dev-master@dev"
}
(请注意@dev
版本要求)抱怨缺乏兼容版本是Composer的正确行为。
将测试包发布到像Packagist这样的公共注册表中通常也是不好的做法。相反,您应该按照no releases的说明将直接存储库规范用于composer.json
。在你的情况下,它将是:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/madskullcreations/simplicity"
}
]
指定直接存储库引用后 - 从Packagist中删除测试包是安全的,除非您真的想与开源社区共享它。