这是我的作曲家。我想在Github上使用Nodge的lessphp项目的fork
"repositories": [{
"type": "package",
"package": {
"version": "dev-master",
"name": "nodge/lessphp",
"source": {
"url": "https://github.com/Nodge/lessphp.git",
"type": "git",
"reference": "master"
},
"autoload": {
"classmap": ["lessc.inc.php"]
}
}
}],
"require": {
"php": ">=5.3.3",
"nodge/lessphp": "dev-master"
},
但是当我运行composer update时,我得到了这个错误:
Nodge /lessphp dev-master ->没有找到匹配的包。
我不知道如何正确地要求这个叉子。
我通常在包定义中添加一个“dist”节点。
我用这种方法从来没有遇到过问题。
我不记得我从哪里学来的这个技巧,不过,没有进一步的解释。
{
"repositories": [
{
"type": "package",
"package": {
"version": "dev-master",
"name": "nodge/lessphp",
"source": {
"url": "https://github.com/Nodge/lessphp.git",
"type": "git",
"reference": "master"
},
"autoload": {
"classmap": ["lessc.inc.php"]
},
"dist": {
"url": "https://github.com/Nodge/lessphp/archive/master.zip",
"type": "zip"
}
}
}
],
"require": {
"nodge/lessphp": "*"
}
}
接受的答案和澄清的答案对我来说都很好,当我有一个应用程序,它需要一个依赖,我已经分叉和修改。在这种情况下,我仍然使用公认的答案。
然而,当我有一个包,我想在Packagist上发布自己,它也包含一个分叉和修改的依赖时,这种方法不再有效。
如果有人试图安装这个配置,他们仍然会得到相同的>没有找到匹配的包。错误消息。
这个答案和链接的Composer文档表明,回购设置必须在顶级的Composer .json中。这意味着,安装这个包的人必须将该配置添加到他们的编写器中。Json文件,这给安装过程增加了许多不必要的混乱。
相反,我把我的fork发布给了Packagist。我的理解是,虽然分叉是不受欢迎的,但这将被认为是一个维护的分叉,因为我正在这个新包中使用它。
希望这对任何遇到他们想要发布的包或库的问题的人都有帮助。
我通常在包定义中添加一个“dist”节点。
我用这种方法从来没有遇到过问题。
我不记得我从哪里学来的这个技巧,不过,没有进一步的解释。
{
"repositories": [
{
"type": "package",
"package": {
"version": "dev-master",
"name": "nodge/lessphp",
"source": {
"url": "https://github.com/Nodge/lessphp.git",
"type": "git",
"reference": "master"
},
"autoload": {
"classmap": ["lessc.inc.php"]
},
"dist": {
"url": "https://github.com/Nodge/lessphp/archive/master.zip",
"type": "zip"
}
}
}
],
"require": {
"nodge/lessphp": "*"
}
}