Composer - 未知的下载程序类型:h - 在packagist上获取此错误

时间:2015-04-02 18:03:08

标签: composer-php

我刚刚在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

我不确定我在这里做错了什么?

4 个答案:

答案 0 :(得分:9)

如果您刚开始收到此错误,请尝试composer clear-cache和/或删除~/.composervendor

我得到的具体错误是:

  [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