【问题标题】:Composer create-project fails on local package repositoryComposer create-project 在本地包存储库上失败
【发布时间】:2013-05-13 17:47:52
【问题描述】:

我正在尝试创建一个 本地 存储库来测试作曲家项目,但是

composer create-project --repository-url=/path/to/packages.json vendor/project-name

失败

[UnexpectedValueException]

Unknown package has no name defined [...]

我的packages.json 是:

{
  "packages": {
    "vendor/project-name": {
      "dev-master": {
        "name": "vendor/project-name",
        "type": "project",
        "version": "dev-master",
        "source": {
          "url": "/path/to/project/.git",
          "type": "git"
        }
      }
    }
  }
}

至于composer's guide,应该够了。

有什么线索吗?

【问题讨论】:

    标签: php composer-php


    【解决方案1】:

    执行这个并告诉我它是否也适合你:

    mkdir /tmp/project-name
    cd /tmp/project-name
    git init
    vim (or whatever you like) packages.json
    

    粘贴并保存:

    {
        "package": {
            "name": "vendor/project-name",
            "version": "1.0.0",
            "source": {
              "url": "/tmp/project-name/.git",
              "type": "git",
              "reference": "master"
            }
        }
    }
    

    执行:

    echo '{ "name": "test/test", "version": "1.0.0", "dist": { "url": "http://dummy.com/dummy.zip", "type": "zip" } }' > composer.json
    
    git add packages.json composer.json
    git commit -a -m "first commit"
    

    然后创建你的包:

    composer create-project --repository-url=/tmp/project-name/packages.json vendor/project-name
    

    【讨论】:

    • 抱歉花了这么长时间,效果很好!您从哪里获得单个包的替代语法?而且,顺便说一句,即使您不签入packages.json,它仍然可以工作,并且它不会在生成的项目中包含存储库定义(它不属于)。
    • 但是这只适用于单个包,我仍然无法使用指南中描述的格式。
    • 实际上是通过反复试验。在挖掘了很多sintax之后,我回到了你的json,试图理解它所谈论的“包名”,我开始从中删除一些东西,以便有一个更小的东西,只有一个包。而且,相信我,“包裹”(单数)是一个错字,这让我哈哈大笑。我认为与 Composer 的人交流一下可以对包问题有所了解,其中肯定有问题。
    • 我再次查看了作曲家源代码,这是由于您选择本地存储库时未记录的行为(请参阅github.com/composer/composer/pull/1899)。实际上,只要列出一个包,最外面的 json 键(在您的情况下为“包”)的内容就会被忽略。如果存在多个包,则需要提供包名称(如 PR 中所述),否则搜索将失败。我将等待 PR 的 cmets/merge 并添加解释性答案。
    猜你喜欢
    • 2014-08-21
    • 2019-11-16
    • 2020-02-24
    • 2019-01-22
    • 2015-04-21
    • 2013-06-29
    • 2016-02-11
    • 2015-01-29
    • 2017-05-16
    相关资源
    最近更新 更多