禁用Composer缓存以进行Git克隆

3
当Composer尝试从Bitbucket克隆我的git仓库时,它会从缓存中加载。 这会导致过时的仓库,无法加载主干上的最新提交。 每次清除Composer缓存似乎很麻烦。 我希望强制Composer从未缓存地加载此仓库。 --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"
             }
        }
    },
1个回答

1
问题不在Composer的缓存中 - 您正在使用错误类型的存储库。您应该使用vcs作为类型:
"mybbrepo": {
    "type": "vcs",
    "url": "git@bitbucket.org:project/mybbrepo.git"
},

package 类型应该仅用于没有 composer.json 文件的非 composer 包 - 通常应该避免使用,因为它有很多限制:

注意:这种仓库类型有一些限制,应尽可能避免使用:

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

你的意思是我这样做不会更新,如果我使用版本控制系统它就会更新了吗?版本控制系统不需要对主分支进行引用吗? - JohanVdR
当您使用“vcs”类型时,应将“dev-master”用作依赖约束,这样它就可以从“master”更新而不会出现任何问题。“package”用于静态引用-在更改“version”字段之前,它将不会更新。 - rob006
谢谢提供信息。当使用vcs时,我如何将dev-master添加为依赖项? - JohanVdR
你应该在你的 composer.json 文件中拥有类似这样的内容:"require": {"project/mybbrepo": "dev-master"} - rob006
我已经让它工作了。谢谢!在repo的根目录下添加了composer.json文件:{ "name": "Your name here", "type": "drupal-module-custom", "description": "Your description here", "minimum-stability": "dev" }。并将以下内容添加到项目的composer.json文件的“repositories”部分中:"mybbrepo": { "type": "vcs", "url": "git@bitbucket.org:project/mybbrepo.git" }。现在我可以执行`composer require project/mybbrepo.git',并在'require'中设置我想要的版本(dev-master或任何git标记版本)。 - JohanVdR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接