Pertanyaan Bagaimana cara menentukan jalur pemasangan Composer?


Saya memiliki definisi ini:

{
    "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.*"
    }
}

Saya menggunakan Symfony 1, dan saya ingin menginstalnya plugins/sfGuardPlugin/. Bagaimana saya menentukan ini?


76
2017-08-09 12:23


asal


Jawaban:


Tampaknya Anda dapat menentukan vendor dir menjadi sesuatu yang lain (plugins dalam kasus Anda):

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

Kemudian, Anda mungkin mengganti nama paket untuk tidak memiliki dir level di dalamnya, seperti:

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

Jadi, kamu composer.json seharusnya terlihat seperti ini:

{
    "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.*"
    }
}

Edit

Menggunakan konfigurasi ini, Anda akan mendapatkan jalan (yang mana tentu saja tidak bagus untuk symfony):

plugin / sfGuardPlugin / sfGuardPlugin-4.0.2 /

Saya menemukan solusi dengan ini 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



Anda juga bisa menggunakan komposer / pemasang, penginstal perpustakaan kompos multi-kerangka dengan jenis paket "symfony1-plugin". Ini adalah file komposer.json saya, agar dapat menginstal Symfony 1.4 (dalam lib / vendor) dan plugin di (/ plugins):

{
    "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



Lihat COMPOSER_VENDOR_DIR variabel lingkungan.

Dengan mengatur var ini Anda dapat membuat Composer menginstal dependensi ke dalam direktori selain vendor.

Dapat membantu jika Anda ingin menimpanya di lingkungan tertentu seperti gelandangan di mana Anda tidak ingin ini berada di folder bersama.

Dan seperti yang dikatakan J0k, ada vendor-dir di config bagian dari composer.json

Default untuk vendor. Anda dapat menginstal dependensi ke direktori yang berbeda jika Anda mau. $ HOME dan ~ akan digantikan oleh jalur direktori home Anda di direktori-dir dan semua opsi * -dir di bawah.


5
2018-04-18 18:48