【问题标题】:composer install fails trying to get own typo3 extension hosted on bitbucket作曲家安装无法尝试在 bitbucket 上托管自己的typo3 扩展
【发布时间】:2016-01-13 14:42:37
【问题描述】:

我在 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 update的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"]
        }

  }
}

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

有人有一个可行的例子吗?

【问题讨论】:

  • 我不确定 Composer 在从 Git 存储库安装包时是否尊重 composer.json 中的 version 条目。您的存储库中有2016 标签吗?如果没有,请尝试创建一个。
  • 我想,我的本地作曲家甚至没有找到托管在 bitbucket 上的作曲家。错误“在任何版本中都找不到请求的包路径/扩展名,包名称可能有错字”指出了这一点。
  • 我问的是标签,因为 Compose 默认不会安装不稳定版本(即分支;稳定版本是标签)。可能是这里的问题。
  • 哦,是扩展名 composer.json 中的 name(在您的示例中为 vendor/extkey)和项目 composer.json 中的 require'd 包名称(在您的示例中path/extension) 相同的值?
  • 2016 是一个分支。现在 require (project) 和 name (extension) 匹配但仍然是同一个问题。

标签: composer-php typo3


【解决方案1】:

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

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

由于您需要将扩展​​名设置为 "vendor/extKey": "2016",因此 Composer 将在您的存储库中查找名为 2016 的标签。

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

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

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

另请参阅Composer manual(强调我的):

标签

对于每个看起来像版本的标签,将创建该标签的包版本。它应该匹配“X.Y.Z”或“vX.Y.Z”,并带有可选的后缀 -补丁 (-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 版本。

【讨论】:

    猜你喜欢
    • 2016-04-20
    • 2019-09-16
    • 2016-07-02
    • 2019-04-26
    • 2021-10-07
    • 2013-11-03
    • 2019-02-02
    • 2020-12-06
    • 2018-07-28
    相关资源
    最近更新 更多