我刚刚在packagist
上张贴了一个包,我试图运行composer update
并收到错误:
Unknown downloader type: h. Available types: git, svn, hg, perforce, zip, rar, tar, gzip, phar, file.
在主项目文件中我有:
"require": {
//.......
"cyphix333/sbb-code-parser": "dev-master"
},
composer.json
的{{1}}文件是:
cyphix333/sbb-code-parser
我不确定我在这里做错了什么?
答案 0 :(得分:9)
如果您刚开始收到此错误,请尝试composer clear-cache
和/或删除~/.composer
和vendor
。
我得到的具体错误是:
[InvalidArgumentException]
Unknown downloader type: . Available types: git, svn, fossil, hg, perforce, zip, rar, tar, gzip, xz, phar,
file, path.
我刚刚删除了所有内容,然后再次尝试;现在有效。
我正在使用
Composer version 1.2.0 2016-07-19 01:28:52
答案 1 :(得分:1)
对composer.json的更改:删除了规范和来源;添加了类型库。
试试这个:
{
"name": "cyphix333/sbb-code-parser",
"description": "SBBCodeParser is a simple BBCode parser",
"homepage": "https://github.com/samclarke/SBBCodeParser",
"keywords": ["SBBCodeParser"],
"type": "library",
"authors": [
{
"name": "Sam Clarke"
}
],
"require": {
"php": ">=5.3"
},
"autoload": {
"classmap": ["SBBCodeParser.php", "classes/"]
}
}
答案 2 :(得分:0)
我也遇到过这个问题,我们在composer.json
中遇到了人为错误。我们的一个自定义存储库的dist
部分是使用错误的下载程序类型输入的(如错误消息中所述)。
{
"type": "package",
"package": {
"name": "campaignmonitor/createsend-php",
"type": "drupal-library",
"version": "dev-master",
"dist": {
"url": "https://github.com/campaignmonitor/createsend-php.git",
"type": "drupal-library"
},
"source": {
"url": "https://github.com/campaignmonitor/createsend-php.git",
"type": "git",
"reference": "master"
}
}
}
请注意,dist
的{{1}}输入为type
,即包类型,而不是下载类型。我们使用以下drupal-library
:
dist
在我们开发此项目时,我们在本地运行 "dist": {
"url": "https://github.com/campaignmonitor/createsend-php/archive/master.zip",
"type": "zip"
},
时没有遇到任何问题。我们在使用composer install
准备好项目生产时遇到了此错误。显然,它只会在--prefer-dist
上使用dist
,然后会遇到此错误。
免责声明:这个案例与原始问题有些不同,虽然它具有高度相关性,但在尝试搜索答案时,这个问题就出现了问题。我希望这没关系。
答案 3 :(得分:0)
我已经解决了删除供应商目录的问题。
rm -Rf vendor
然后运行:
composer update