为什么Composer使用包文件安装.git或.hg目录?

时间:2013-02-01 10:30:00

标签: php composer-php

我正在尝试发布作曲家包。我将composer.json保存在我的包目录中:

{
    "name": "vendor_name/my_bundle",
    "type": "symfony-bundle",
    "autoload": {
        "psr-0": {
            "VendorName\\MyBundle": ""
        }
    },
    "target-dir": "VendorName/MyBundle"
}

但是当我安装它(composer update)时,包文件会添加.hg目录。

在此程序包中可以看到类似的行为:https://packagist.org/packages/tom32i/file-bundle(包文件将添加.git目录:http://joxi.ru/uploads/prod/20130201/560/53a/136c5290b3c0f4c6f6318445f358d1d8cf30fe13.png

2 个答案:

答案 0 :(得分:12)

Quote from the documentation

  

下载程序包有两种方法:source和dist。对于稳定版本,composer默认使用dist。源是版本控制存储库。

你提到的软件包没有稳定的版本,因此作曲家从git下载源代码。如果你想让作曲家下载包文件,请使用--prefer-dist(只有在可能的情况下才会发生)。

答案 1 :(得分:9)

Jakub's answer很棒,完全可以解决问题......

更永久地指定dist版本,只需在您的composer.json文件中添加preferred-install

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