首页 > 解决方案 > 禁用 git clone 的作曲家缓存

问题描述

当作曲家试图从 Bitbucket 克隆我的 git 存储库时,它会从缓存中加载它。未加载来自 master 的最新提交,这会导致 repo 过时。每次清除作曲家缓存似乎很麻烦。我想强制作曲家从缓存中加载这个 repo。--prefer-source可以做到这一点。但是如何以最好的方式解决这个问题。如何在下面的代码中添加强制无缓存?

 "mybbrepo": {
        "type": "package",
        "package": {
            "name": "project/mybbrepo",
            "version": "1.0",
            "type": "drupal-theme-custom",
            "source": {
                "url": "git@bitbucket.org:project/mybbrepo.git",
                "type": "git",
                "reference": "master"
             }
        }
    },

标签: gitcomposer-php

解决方案


问题不在 Composer 的缓存中 - 您使用的存储库类型不正确。您应该使用vcs以下类型:

"mybbrepo": {
    "type": "vcs",
    "url": "git@bitbucket.org:project/mybbrepo.git"
},

packagetype 应该只用于非作曲家包(composer.json里面没有文件) - 通常你应该避免它,因为它有很多限制:

注意:此存储库类型有一些限制,应尽可能避免:

  • version除非您更改字段,否则 Composer 不会更新包。
  • Composer 不会更新提交引用,因此如果您master用作引用,则必须删除包以强制更新,并且必须处理不稳定的锁定文件。

推荐阅读