如何强制Composer下载本地包?

时间:2017-01-21 17:19:32

标签: php composer-php

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

- 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清除了缓存,使用my/package删除了composer remove my/package并再次使用composer require my/package --prefer-source安装了缓存(我不明白--prefer-source是否适用仅限vcs)。下载的软件包仍然不是本地软件包。如何强制作曲家使用本地作品?

2 个答案:

答案 0 :(得分:8)

"require": {
    "my/package": "*"
}

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

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

答案 1 :(得分:0)

为了

composer --version
Composer version 2.0.14 

在 composer.json 文件中

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