Composer克隆来自缓存而不是repo

时间:2017-08-24 14:35:16

标签: caching composer-php

我正在处理两个项目,两个都设置为git repos,都使用composer。 第一个项目使用second作为库。 我按以下方式配置了composer.json:

... "repositories": [
    {"type": "composer", "url":"http://composer.myrepourl.com/repo/private/"},
]

"require": {
    "second/second": "dev-B-3"
} ...

第一次从存储库中拉出项目没有问题。但是现在我在第二个项目中进行了一些更改,推送到了repo,现在想要将它们放在第一个项目中,但由于某些原因,作曲家从缓存中拉出来。

我运行了作曲家clear-cache。我尝试删除:vendor文件夹,/ home / user / .composer / cache,cache inside container /root/.composer/,但它仍然找到了一种从缓存中克隆第二个项目的方法,而不是从repo中提取它。

关于如何强制编写器总是从repo中提取而不是从缓存中克隆的任何想法?

3 个答案:

答案 0 :(得分:2)

运行

$ composer install --prefer-source

或者,通常在composer.json中指定首选安装方法:

{
    "config": {
        "preferred-install": "source"
    }
}

或专门针对所需的依赖

通常:

{
    "config": {
        "preferred-install": {
            "vendor/package": "source",
            "*": "dist"
        }
    }
}

供参考,见:

答案 1 :(得分:1)

您应该跑步

composer clear-cache

然后

composer update --prefer-source

答案 2 :(得分:0)

好的,我找到了解决方案:

sudo rm -r /home/user/project/vendor
cd %wherever_your_docker_is%
docker-compose stop
docker-compose rm
docker-compose up -d
composer update