Composer 从缓存中克隆而不是 repo

mak*_*eze 4 caching composer-php

我有两个我正在处理的项目,都设置为 git repos,都使用作曲家。第一个项目使用第二个作为库。我通过以下方式配置了 composer.json:

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

"require": {
    "second/second": "dev-B-3"
} ...
Run Code Online (Sandbox Code Playgroud)

第一次从存储库中提取项目没有问题。但是现在我在第二个项目中做了一些更改,推送到 repo,现在希望将它们放在第一个项目中,但由于某种原因,composer 从缓存中提取。

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

关于如何强制作曲家始终从 repo 中提取而不是从缓存中克隆的任何想法?

loc*_*inz 5

$ composer install --prefer-source
Run Code Online (Sandbox Code Playgroud)

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

{
    "config": {
        "preferred-install": "source"
    }
}
Run Code Online (Sandbox Code Playgroud)

或专门针对所需的依赖项

一般来说:

{
    "config": {
        "preferred-install": {
            "vendor/package": "source",
            "*": "dist"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

参考:


mak*_*eze 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
Run Code Online (Sandbox Code Playgroud)