Come specificare Compositore percorso di installazione?

Ho questa definizione:

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

Sto utilizzando Symfony 1 e vorrei installare sul plugins/sfGuardPlugin/. Come faccio a specificare questo?

InformationsquelleAutor Tower | 2012-08-09



3 Replies
  1. 128

    Sembra che si può definire il vendor dir per essere qualcos’altro (plugins nel tuo caso):

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

    Quindi, è possibile rinominare il nome del pacchetto di non avere un livello di directory all’interno, come:

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

    Così, il vostro composer.json dovrebbe assomigliare a questa:

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

    Modifica

    Utilizzando questa configurazione, vi saranno mostrati anche il percorso (che è naturalmente non va bene per symfony):

    plugins/sfGuardPlugin/sfGuardPlugin-4.0.2/

    Ho trovato una soluzione con questo 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.*"
        }
    }
    • Bello, inoltre posso in qualche modo fare in modo che la cartella estratta non andare in profondità come ora: plugins/sfGuardPlugin/sfGuardPlugin-4.0.2/, invece voglio plugins/sfGuardPlugin?
    • Sì, ho appena visto che. Sto provando con un diverso tipo (invece di tar).
    • Che funziona bene-in modo che hanno ancora un repository dopo tutto 🙂
    • yep 🙂 e non credo che possa essere rimossa in un lontano futuro lontano.
    • c’è un modo per specificare il fornitore dir per qualche pacchetto specifico solo, e lasciare gli altri come predefinito?
    • Questo è un ottimo e ricercato risposta, ma non perdere di Adamo V., perché sembra più ufficiale, oh, e facile 😉

  2. 27

    È inoltre possibile utilizzare compositore/installatori, un multi-quadro compositore biblioteca installer con il “symfony1-plugin” tipo di pacchetto. Questo è ciò che il mio compositore.file json sembra, per l’installazione di Symfony 1.4 (nel lib/vendor) e plug-in (/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"
        }
    }
  3. 8

    Vedere COMPOSER_VENDOR_DIR variabile di ambiente.

    Mediante l’impostazione di questa variabile è possibile effettuare Compositore installare le dipendenze in una directory diversa da fornitore.

    Può essere utile nel caso in cui si desidera eseguire l’override di questo in un ambiente particolare come vagabondo in cui non si desidera che questo per essere in una cartella condivisa.

    E come J0k detto, non c’è vendor-dir in config sezione di composer.json

    Valori predefiniti del fornitore. È possibile installare le dipendenze in una directory diversa, se si desidera. $HOME e ~ sarà sostituita dalla vostra home directory del percorso fornitore-dir e tutto *-dir opzioni di seguito.

Lascia un commento