Composer 从缓存而不是存储库克隆

问题描述 投票:0回答:3

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

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

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

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

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

关于如何强制作曲家始终从存储库中提取而不是从缓存中克隆有什么想法吗?

caching composer-php
3个回答
8
投票

奔跑

$ composer install --prefer-source

或者,通常在

composer.json
中指定您首选的安装方法:

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

或专门针对所需的依赖项

一般:

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

参考:


2
投票

你应该跑

composer clear-cache

然后

composer update --prefer-source

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
© www.soinside.com 2019 - 2024. All rights reserved.