Composer - 添加没有 composer.json 的 git 存储库
Posted
技术标签:
【中文标题】Composer - 添加没有 composer.json 的 git 存储库【英文标题】:Composer - adding git repository without composer.json 【发布时间】: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文件夹在那里)。
【问题讨论】:
【参考方案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 管理的。所以我让作曲家处理一切。
【讨论】:
以上是关于Composer - 添加没有 composer.json 的 git 存储库的主要内容,如果未能解决你的问题,请参考以下文章