首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Composer不从缓存加载存储库包

Composer不从缓存加载存储库包
EN

Stack Overflow用户
提问于 2015-02-20 10:14:13
回答 1查看 1.1K关注 0票数 0

当我从一个干净的结帐处安装我的应用程序时,它总是从我的本地存储库抓取我的包,而不是像远程包那样从缓存中安装。

我的作曲家档案:

代码语言:javascript
复制
{
    "name": "app/name",
    "description": "Desc",
    "homepage": "http://homepage.com",
    "repositories": [
        {
            "type": "composer",
            "url": "http://packages.localrepository.com/",
            "options": {
                "http": {
                    "proxy": ""
                 }
            }
       }
    ],
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.*",
        "guzzlehttp/guzzle": "4.*",
        "local/health-check": "1.*",
        "local/file-upload": "1.*",
        "rediska/rediska": "dev-master"
    }
}

这就产生了:

代码语言:javascript
复制
 [exec]   - Installing guzzle/guzzle (v3.9.2)
 [exec]     Loading from cache
 [exec]
 [exec]   - Installing local/health-check (1.2.0)
 [exec]     Cloning f62651a1e2328a03ab7fd3fa8f84239ce7ee3a7c

这是为了适应当前的构建过程,每次都要进行干净的签出。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-23 21:08:17

远程包托管在Github或其他宿主服务上,这些服务确实提供了下载带有标记版本的ZIP或TGZ文件的方法。Composer知道这些服务的API,并在适当的时候尝试下载ZIP (如果它选择不好,可以尝试通过使用--prefer-dist强制使用它)。

我想,您自己的托管代码不在Github上。因此,如果Composer不知道在哪里获得ZIP,那么唯一的其他方法是克隆存储库,不管命令行说什么(另一方面,您可以尝试使用--prefer-source强制克隆)。

请注意,这两个选项都不能保证任何东西--如果Composer不能下载ZIP,它将克隆--如果不能克隆,例如当包中的元数据只提到ZIP下载,而没有存储库时,它将下载一个ZIP。

从一种方法切换到另一种方法通常需要删除vendor文件夹和composer.lock文件,然后再运行Composer。这将作为一个更新操作,因此请注意,如果它破坏了您的依赖项(即您依赖"dev-master“之类的分支名称而不是标记的版本),您将不得不处理这个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28626452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档