【问题标题】:Composer clones from cache instead of repoComposer 从缓存而不是 repo 克隆
【发布时间】:2018-02-02 12:01:29
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: caching composer-php


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      运行

      $ composer install --prefer-source
      

      或者,通常在composer.json 中指定您喜欢的安装方法:

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

      或专门针对所需的依赖项

      一般:

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

      参考见:

      【讨论】:

      • 您可能还需要添加--no-cache(并事先从供应商目录中删除包)
      【解决方案3】:

      你应该跑

      composer clear-cache
      

      然后

      composer update --prefer-source
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-08
        • 2012-10-08
        • 2013-08-07
        • 1970-01-01
        • 2022-11-02
        • 2018-04-13
        • 2022-11-05
        相关资源
        最近更新 更多