如何在所需的包中使用Composer存储库



我有两个代码存储库。它们都有composer.json文件(见下文)。第一个composer.json文件是required,第二个是composer.json文件,前者远程存储在比特桶上。

我在本地运行了两个composer.json文件:第一个文件按照我的预期传递并下载供应商;调用第一个文件的第二个文件没有,我得到了这个错误:

Problem 1
- The requested package timeago/timeago could not be found in any version, there may be a typo in the package name.
Problem 2
- The requested package prettify/prettify could not be found in any version, there may be a typo in the package name.

现在,如果我从第一个文件中删除所有存储库,以及它们在requires中的相应条目,那么所有存储库都会按预期工作,文件也会被下载。所以,我认为问题出在第一个文件中的repositories部分。有什么想法吗?

这是我的两个作曲家文件:

文件一:

"repositories": {
    "prettify/prettify": {
        "type": "package",
        "package": {
            "name": "prettify",
            "version": "dev-master",
            "source": {
                "url": "http://google-code-prettify.googlecode.com",
                "type": "svn",
                    "reference": "svn/trunk"
            }
        }
    },
    "timeago/timeago": {
        "type": "package",
        "package": {
            "name": "timeago",
            "version": "dev-master",
            "source": {
                "url": "https://github.com/rmm5t/jquery-timeago.git",
                "type": "git",
                    "reference": "master"
            }
        }
    },
    "require": {
        "timeago": "dev-master",
        "prettify": "dev-master",
    }
}

文件二:

"require": {
    "vendor/project": "master"
},

如果您使用主包的依赖项的composer.json中提到的私有存储库,则必须在那里重复它们。

或者,您可以设置一个Satis实例,从您使用的所有私有存储库中创建必要的元数据,只需将其链接即可。

Composer不会递归地扫描存储库以查找到其他存储库的进一步链接,因为这会导致无限的扫描时间和非常糟糕的性能,并最终导致无法确定的问题,所以无论你使用什么包,都必须只使用Packagist作为源,或者必须提及所有应该覆盖或添加到Packagist的包的源。

拥有一个单独的Satis实例,作为所有私人存储库的完整地图,将真正简化这个过程。

相关内容

  • 没有找到相关文章

最新更新