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