Pregunta ¿Cómo especificar la ruta de instalación de Composer?


Tengo esta definición:

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

Estoy usando Symfony 1, y me gustaría instalarlos en plugins/sfGuardPlugin/. ¿Cómo especifico esto?


76
2017-08-09 12:23


origen


Respuestas:


Parece que puedes definir el vendor dir a ser algo más (plugins en tu caso):

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

Luego, puede cambiar el nombre del nombre del paquete para que no tenga un directorio de nivel dentro, como por ejemplo:

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

Entonces tus composer.json debería verse así:

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

Editar

Usando esta configuración, obtendrás la ruta (que es por supuesto no es bueno para Symfony):

plugins / sfGuardPlugin / sfGuardPlugin-4.0.2 /

Encontré una solución con esto 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



También puedes usar compositor / instaladores, un instalador de biblioteca de compositor multi-framework con el tipo de paquete "symfony1-plugin". Esto es lo que parece mi archivo composer.json, para que pueda instalar Symfony 1.4 (en lib / vendor) y complementos en (/ 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



Ver COMPOSER_VENDOR_DIR Variable ambiental.

Al configurar esta variable, puede hacer que Composer instale las dependencias en un directorio que no sea el proveedor.

Puede ser útil en caso de que desee anular esto en un entorno particular, como vagabundo, donde no desea que esté en una carpeta compartida.

Y como J0k dijo, hay vendor-dir en config Sección de composer.json

El predeterminado es el vendedor. Puede instalar dependencias en un directorio diferente si lo desea. $ HOME y ~ serán reemplazados por la ruta del directorio de inicio en las opciones de dir de proveedor y todas las * a continuación.


5
2018-04-18 18:48