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

F_Z*_*_14 10 php composer-php

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

{
    "name": "vendor_name/my_bundle",
    "type": "symfony-bundle",
    "autoload": {
        "psr-0": {
            "VendorName\\MyBundle": ""
        }
    },
    "target-dir": "VendorName/MyBundle"
}
Run Code Online (Sandbox Code Playgroud)

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

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

Jak*_*las 12

从文档中引用:

有两种方法可以下载软件包:source和dist.对于稳定版本,composer默认使用dist.源是版本控制存储库.

你提到的包没有稳定的版本,因此composer从git下载源代码.使用--prefer-dist,如果你想作曲家下载包文件(只发生如果可能的话).


Lin*_*y D 9

雅各布的答案很棒,并完全指出了解决方案......

为了更永久地指定dist版本,只需preferred-install在composer.json文件中添加一个:

{
    "config": {
        "preferred-install": "dist"
    }
}
Run Code Online (Sandbox Code Playgroud)