Soru Besteci yükleme yolu nasıl belirlenir?


Bu tanıma sahibim:

{
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "symfony/sfGuardPlugin",
                "version": "4.0.2",
                "dist": {
                    "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz",
                    "type": "tar"
                }
            }
        }
    ],
    "require": {
        "symfony/sfGuardPlugin": "4.0.*"
    }
}

Symfony 1 kullanıyorum ve bunları yüklemek istiyorum plugins/sfGuardPlugin/. Bunu nasıl belirleyebilirim?


76
2017-08-09 12:23


Menşei




Cevaplar:


Görünüşe göre vendor dir olmak başka bir şey (plugins Senin durumunda):

{
    "config": {
        "vendor-dir": "plugins"
    }
}

Ardından, paket adını, aşağıdaki gibi bir düzey dir'e sahip olmayacak şekilde yeniden adlandırabilirsiniz:

        "package": {
            "name": "sfGuardPlugin",

Yani senin composer.json şöyle görünmeli:

{
    "config": {
        "vendor-dir": "plugins"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "sfGuardPlugin",
                "version": "4.0.2",
                "dist": {
                    "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz",
                    "type": "tar"
                }
            }
        }
    ],
    "require": {
        "sfGuardPlugin": "4.0.*"
    }
}

Düzenle

Bu yapılandırmayı kullanarak, tabii ki symfony için iyi değil):

eklentileri / sfGuardPlugin / sfGuardPlugin-4.0.2 /

Bununla bir geçici çözüm buldum composer.json:

{
    "config": {
        "vendor-dir": "plugins"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "sfGuardPlugin",
                "version": "4.0.2",
                "source": {
                    "url": "http://svn.symfony-project.com/plugins/sfGuardPlugin/",
                    "type": "svn",
                    "reference": "branches/1.3/"
                }
            }
        }
    ],
    "require": {
        "sfGuardPlugin": "4.0.*"
    }
}

115
2017-08-09 12:39



Güzel, ayrıca bir şekilde, ayıklanan klasör şimdi olduğu kadar derin gitmeyecek şekilde yapabilirim: plugins/sfGuardPlugin/sfGuardPlugin-4.0.2/yerine istiyorum plugins/sfGuardPlugin? - Tower
Evet, sadece gördüm. Ben farklı bir tür ile çalışıyorum (yerine tar). - j0k
Bu iyi çalışıyor - bu yüzden hala hepsinden sonra bir depo var :) - Tower
Yalnızca belirli bir paket için satıcı dirsini belirtmenin ve diğerlerini varsayılan olarak bırakmanın bir yolu var mı? - mr1031011
Bu büyük ve araştırılmış bir cevaptır, ancak Adam'ın V.'sini kaybetmeyin, çünkü daha resmi, ah ve kolay görünüyor ;-) - mTorres


Ayrıca kullanabilirsiniz besteci / montajcılar, "symfony1-plugin" paket tipine sahip çok çerçeveli bir besteci kütüphanesi yükleyicisi. Bu, hem Symfony 1.4 (lib / vendor'da) hem de eklentileri (/ plugins) içinde yüklemek için composer.json dosyamın nasıl göründüğü:

{
    "config": {
        "vendor-dir": "lib/vendor"
    },
    "repositories": {
        "symfony": {
            "type": "package",
            "package": {
                "name": "symfony/symfony1",
                "version": "1.4",
                "dist": {
                    "url": "https://github.com/symfony/symfony1/zipball/1.4",
                    "type": "zip"
                }
            }
        },
        "sfResquePlugin" : {
            "type": "package",
            "package": {
                "name": "devpips/sfResquePlugin",
                "type": "symfony1-plugin",
                "version": "0.1",
                "dist": {
                    "url": "https://github.com/devpips/sfResquePlugin/zipball/master",
                    "type": "zip"
                }
            }
        }
    },
    "require": {
        "composer/installers": "dev-master",
        "symfony/symfony1": "1.4",
        "devpips/sfResquePlugin":"0.1"
    }
}

25
2017-08-19 00:16





Görmek COMPOSER_VENDOR_DIR Çevre değişkeni.

Bu var olanı seçerek, Composer'ın bağımlılıkları satıcıdan başka bir dizine yüklemesini sağlayabilirsiniz.

Bunu, paylaşılan bir klasörde olmasını istemeyeceğiniz vagrant gibi belirli bir ortamda geçersiz kılmak istediğiniz durumda yararlı olabilir.

Ve J0k dediği gibi, orada vendor-dir içinde config bölümü composer.json

Satıcı için varsayılanlar. İsterseniz bağımlılıkları farklı bir dizine yükleyebilirsiniz. $ HOME ve ~, ana direktörünüzün satıcı-dir ve tüm * -dir seçenekleri altındaki yolunun yerini alacak.


5
2018-04-18 18:48