【问题标题】:How to force Composer to download a local package?如何强制 Composer 下载本地包?
【发布时间】:2021-06-10 03:57:42
【问题描述】:

假设我们有以下目录结构,我们假设 my-package 也存在于 Packagist 上:

- apps
\_ my-app
  \_ composer.json
- packages
\_ my-package
  \_ composer.json

要将my/package 添加为my-app 的依赖项,the documentation 声明我们可以使用以下配置:

{
    "repositories": [
        {
            "type": "path",
            "url": "../../packages/my-package"
        }
    ],
    "require": {
        "my/package": "*"
    }
}

但是当我composer update 时,依赖项仍然是从Packagist 下载的。所以,看看,我禁用了 Packagist.org:

{
    "repositories": [
        {
            "type": "path",
            "url": "../../packages/my-package",
            "packagist.org": false
        }
    ],
    "require": {
        "my/package": "*"
    }
}

我用composer clearcache 清除了缓存,用composer remove my/package 删除了my/package,然后用composer require my/package --prefer-source 重新安装了它(我不明白--prefer-source 是否仅用于vcs)。下载的包还是不是本地的。如何强制作曲家使用本地的?

【问题讨论】:

    标签: php composer-php


    【解决方案1】:
    "require": {
        "my/package": "*"
    }
    

    如果是VCSpath 存储库类型,您需要指定您请求的包的版本。因此,不要像现在那样使用*,而是使用@dev

    "require": {
        "my/package": "@dev"
    }
    

    【讨论】:

      【解决方案2】:

      对于

      composer --version
      Composer version 2.0.14 
      

      在 composer.json 文件中

      "require": {
      "my/package": "dev-master"
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-22
        • 2019-07-13
        • 2016-06-10
        • 1970-01-01
        • 1970-01-01
        • 2020-02-02
        • 2012-06-28
        • 2014-04-25
        相关资源
        最近更新 更多