composer安装失败,尝试获取托管在bitbucket上的自己的typo3扩展

时间:2016-01-13 14:42:38

标签: composer-php typo3

我在bitbucket上托管了一个TYPO3扩展程序。我想用作曲家获得这个扩展。据我所知,我的扩展根目录中必须有一个composer.json,我的composer.json中必须有一些条目,我运行的是composer install

我的扩展程序的composer.json

{
  "name": "vendor/extkey",
  "type": "typo3-cms-extension",
  "description": "Extension for bla bla bla",
  "keywords": [],
  "homepage": "http://www.vendor.com",
  "authors": [
    {
      "name": "blah",
      "email": "dev@vendor.com",
      "role": "Developer"
    }
  ],
  "version": "2016",
  "require": {
        "composer/installers": "~1.0",
        "typo3/cms-core": "^7.6.0"
    }
}

我运行作曲家更新的composer.json:

{
  "repositories": [
        {
            "type": "composer",
            "url": "http://composer.typo3.org/"
        },
        {
            "type": "git",
            "url": "https://user@bitbucket.org/path/extension.git"
        }
    ],
  "name": "blah",
  "require": {
    "typo3/cms": "7.6.2",
    "bk2k/bootstrap-package" : "dev-master",
    "path/extension": "2016"
  },
  "extra": {
    "typo3/cms": {
      "cms-package-dir": "{$vendor-dir}/typo3/cms",
      "web-dir": "web"
    },
    "installer-paths": {
            "typo3conf/ext/{$name}": ["vendor/package"]
        }

  }
}

我总是出错: 在任何版本中都找不到请求的包路径/扩展名,包名称中可能存在拼写错误。

有人有一个有效的例子吗?

1 个答案:

答案 0 :(得分:3)

  

在任何版本中都找不到请求的包<insert-package-key-here>,包名中可能有拼写错误。

此消息表示您注册的存储库中不存在您要求Composer安装的版本。现在,当需要来自Git存储库的包时,Composer将使用该存储库中的标记和分支来获取其版本信息。

由于您已将扩展程序设为"vendor/extKey": "2016",因此Composer将在您的存储库中查找名为2016的标记。

您在评论中说明您有一个名为2016分支。需要分支时,您需要在dev-<branch>中使用composer.json作为版本说明符:

"require": {
    "vendor/extKey": "dev-2016"
}

或者,在您的存储库中创建一个标记,并将其用作composer.json中的版本。

另见Composer manual关于此(强调我的):

  

标签

     

对于看起来像版本的每个标记,都会创建该标记的包版本。它应匹配&#39; X.Y.Z&#39;或者&#39; vX.Y.Z&#39;,可选后缀为-patch(-p),-alpha(-a),-beta(-b)或-RC。后缀也可以后跟一个数字。

     

分支机构

     

对于每个分支,都将创建一个包开发版本。如果分支名称看起来像版本,则版本将为{branchname}-dev。例如,分支2.0将获得2.0.x-dev版本(由于技术原因添加.x,以确保它被识别为分支)。 2.0.x分支也是有效的,并且也可以转换为2.0.x-dev。 如果分支看起来不像版本,则为dev-{branchname}master会产生dev-master版本。