【问题标题】:Composer - adding git repository without composer.jsonComposer - 添加没有 composer.json 的 git 存储库
【发布时间】:2014-11-28 14:23:57
【问题描述】:

我尝试从 github (designmodo/Flat-UI) 添加存储库,使用配置并得到错误No valid composer.json was found in any branch or...Your requirements could not be resolved to an installable set of packages.The requested package designmodo/flat-ui could not be found in any version

我在配置中犯了什么错误:

"repositories": {
   "flat-ui": {
     "type": "package",
     "package": {
       "name": "designmodo/Flat-UI", 
       "version": "1.3.0", // Don't know is it important? Where get this number in repo?
       "source": {
         "url": "https://github.com/designmodo/Flat-UI",
         "type": "git",
         "reference": "dev-master" // reference is branch name? 
       }
     }
   }
 },

 "require": {
   "twbs/bootstrap-sass": "~3.2",
   "designmodo/Flat-UI": "dev-master" // branch again (/minimum-stability?)
 },

在某些时候composer下载包但返回错误(我不知道他什么时候做的,我在供应商文件夹中查找并且designmodo文件夹在那里)。

【问题讨论】:

    标签: git composer-php


    【解决方案1】:

    问题解决了。在"designmodo/Flat-UI": "*" 部分中将reference 更改为master 并将版本更改为任何*。之后通过 git 下载作曲家包并更新 composer.lock 没有问题。应该适用于任何 github 存储库。

    工作配置:

    {
        "repositories": {
          "flat-ui": {
            "type": "package",
            "package": {
              "name": "designmodo/Flat-UI",
              "version": "1.3.0",
              "source": {
                "url": "https://github.com/designmodo/Flat-UI",
                "type": "git",
                "reference": "master"
              }
            }
          }
        },
        "require": {
            "twbs/bootstrap-sass": "~3.2",
            "designmodo/Flat-UI": "*"
        },
    }
    

    https://getcomposer.org/doc/05-repositories.md

    【讨论】:

    • 这对我帮助很大。这可能很明显,但name 需要具有“供应商名称、正斜杠和包名称”(根据 Composer 生成的弃用警告)。 version 必须是有效的版本字符串(如 1.0.0),尽管它可以是任意的。
    【解决方案2】:

    它只对我删除标签有效,如下所示:

    {
            "repositories":[
            {              
                "type": "package",
                "package": {
                  "name": "designmodo/Flat-UI",
                  "version": "1.3.0",
                  "source": {
                    "url": "https://github.com/designmodo/Flat-UI",
                    "type": "git",
                    "reference": "master"
                  }
                }
            }
            ],
            "require": {
                "twbs/bootstrap-sass": "~3.2",
                "designmodo/Flat-UI": "*"
            }, 
    }
    

    【讨论】:

      【解决方案3】:

      我有一个类似的问题:除了添加一个 Git 存储库,我还想包含一个 SVN 存储库(没有composer.json)和一个 ZIP 文件。上面的解决方案对我不起作用。

      使用 Composer(版本 1)我收到以下错误消息:

      问题 1 - 请求的包 XXX 在任何地方都找不到 版本,包名可能有错别字。

      升级到 Composer 版本 2 有帮助,因为错误消息更有帮助:

      问题 1 - 根 composer.json 需要 XXX *,找到 XXX[master] 但是 它不符合您的最低稳定性。

      所以解决方案是add "@dev" behind the required version。此外,我必须将 "secure-http": false 包含到 config 部分,因为 ZIP 文件来自没有 HTTPS 的页面。

      这是我完整的composer.json 文件:

      {
          "prefer-dist": true,
          "repositories": {
                  "viathinksoft/vnag": {
                          "type": "package",
                          "packagist.org": false,
                          "package": {
                                  "name": "viathinksoft/vnag",
                                  "version": "master",
                                  "license": "Apache-2.0",
                                  "source": {
                                          "url": "https://svn.viathinksoft.com/svn/vnag/",
                                          "type": "svn",
                                          "reference": "trunk/"
                                  }
                          }
                  },
                  "dcodeio/bcrypt.js": {
                          "type": "package",
                          "packagist.org": false,
                          "package": {
                                  "name": "dcodeio/bcrypt.js",
                                  "version": "master",
                                  "license": [
                                          "BSD-3-Clause",
                                          "MIT"
                                  ],
                                  "source": {
                                          "url": "https://github.com/dcodeio/bcrypt.js",
                                          "type": "git",
                                          "reference": "master"
                                  }
                          }
                  },
                  "spamspan/spamspan": {
                          "type": "package",
                          "packagist.org": false,
                          "package": {
                                  "name": "spamspan/spamspan",
                                  "version": "master",
                                  "license": "GPL-2.0-only",
                                  "dist": {
                                          "url": "http://www.spamspan.com/releases/spamspan-latest.zip",
                                          "type": "zip",
                                          "reference": "master"
                                  }
                          }
                  }
          },
          "require": {
                  "dcodeio/bcrypt.js": "*@dev",
                  "viathinksoft/vnag": "*@dev",
                  "spamspan/spamspan": "*@dev"
          },
          "config": {
                  "secure-http": false,
                  "preferred-install": {
                          "*": "dist"
                  }
          }
      }
      

      我还想解释一下我这样做的原因: 这些是没有composer.json 文件的三个第三方产品的示例。我知道“bcrypt.io”是一个npm 项目,理论上我可以使用npm 来下载它,我可以手动下载并解压composer 的postinstall 部分中的ZIP 文件。 但是,我想在我的项目的vendor 目录中拥有所有依赖项,但我不想在这个目录中手动添加一些东西,因为它是由 composer 管理的。所以我让作曲家处理一切。

      【讨论】:

        猜你喜欢
        • 2016-05-03
        • 1970-01-01
        • 2012-07-16
        • 2017-06-29
        • 2015-03-19
        • 2016-10-05
        • 2014-06-02
        • 2018-11-17
        • 2012-09-23
        相关资源
        最近更新 更多