¿Por qué PHP Composer es tan lento?

15 minutos de lectura

avatar de usuario
Lanzador Agm

Por que es Compositor de PHP tan lento cuando todo lo que hago es iniciar un proyecto con cero dependencias? Aquí están los comandos que ejecuto:

composer init
composer install

Espere 3 minutos (no es una exageración).

Todo lo que tiene que hacer el compositor es usar un cargador automático y crear /vendor, entonces, ¿por qué tarda tanto? De hecho, ¿por qué ese paso no sucede en composer init?

¿Hay alguna opción de configuración que pueda usar para extraer un cargador automático en caché y un proveedor en init?

  • Más en serio: ¿has actualizado tu compositor en los últimos 30 días? Hubo una importante mejora en el rendimiento del código el mes pasado.

    – Marcos Baker

    10 de febrero de 2015 a las 16:10

  • Yo empecé compose install hace más de 5 minutos y aún no se ha completado. Composer version 1.0-dev (07c644ac229a21df80180598d8bb9aaba232eecb) 2015-02-03 12:51:10. Tal vez no sea la versión más reciente, pero sí más nueva que su mainframe de IBM 😉

    – axiac

    10 de febrero de 2015 a las 16:13

  • Confirma que lo has hecho. composer self-update

    – sjagr

    10 de febrero de 2015 a las 16:51

  • Lo actualicé la semana pasada más o menos.

    – Agm Launcher

    10 de febrero de 2015 a las 18:11

  • Luché con la actualización del compositor y la actualización automática del compositor siendo increíblemente lenta. Tomando más de 15 minutos y luego lanzando excepciones. Cambié los servidores DNS de mi enrutador (de Google a los de mi ISP) y el compositor funcionó a la perfección.

    -Gordon Hickley

    25 de junio de 2015 a las 3:47


avatar de usuario
Hiraku

Debido a que Composer es implementado por file_get_contents(). Eso no tiene optimizaciones TCP, Keep-Alive, multiplexación, etc.

Creé un complemento Composer para descargar paquetes en paralelo: https://packagist.org/packages/hirak/prestissimo

$ composer global require hirak/prestissimo

Por favor pruebalo. En mi entorno, composer install se vuelve 10 veces más rápido.

  • Wow, pasé de 124 segundos para instalar un nuevo proyecto de laravel a solo 21 segundos. ¡Me encanta!

    – maíz

    27 de septiembre de 2018 a las 9:52

  • Buenas noticias: esto aparentemente se fusionó con Composer 2 en enero de 2019: github.com/compositor/compositor/pull/7904

    -Chuck Le Butt

    09/07/2019 a las 20:00


  • @ChuckLeButt pero el lanzamiento sigue fuera de la vista 🙁

    – hejdav

    19 de febrero de 2020 a las 22:33

  • Gracias hermano. Es 20 veces más rápido.

    – Ilias Karim

    16 mayo 2020 a las 23:47


avatar de usuario
sgr12

  1. Asegúrate de tener la última versión de Composer.
  2. Instale en modo detallado agregando -vvv, por ejemplo composer global require "squizlabs/php_codesniffer=*" -vvv
  3. Si puede averiguar dónde Composer se enfrenta a la lentitud, por ejemplo, el mío se atascó durante 5 minutos al descargar paquetes. Tomó >5 minutos descargar un archivo de 20 kB en una conexión de 50 Mbit/s. Esto se debió a que estaba descargando los paquetes de packagist usando HTTP y no HTTPS. Hacer estos cambios en la configuración ha resuelto mi problema:
    composer config --global repo.packagist composer https://packagist.org

  • Soy nuevo en Composer y trato de arreglar esto durante 2 días, después de leer tu comentario y agregar -vvv, finalmente funcionó. 1000 votos a favor

    – Huy Trịnh

    18 de julio de 2017 a las 14:40

  • # 3 lo resolvió para mí. Eres mi héroe en este momento. Estuve preocupado durante bastante tiempo por qué es tan lento y solo funcionaba en algunas conexiones a Internet. ¡Gracias!

    – Andreas Schantl

    4 de febrero de 2020 a las 2:16

  • composer config --global repo.packagist composer https://packagist.org ¡Qué fue eso! ¡Impresionante! 🏆

    – Rishi Kulshreshtha

    20 de febrero de 2020 a las 13:57

avatar de usuario
adjco

Además, deshabilite xdebug. Xdebug puede hacer que Composer tarde unos minutos incluso cuando ejecuta un comando tan simple como composer --version.

  • Esto en realidad resultó ser mi problema. Xdebug hace que el compositor se ejecute muy lento.

    – Agm Launcher

    25 de mayo de 2017 a las 13:59

  • Intente usar hirak/prestissimo. Es un complemento de compositor que lo ayuda a descargar paquetes a un ritmo rápido. Enlace

    –Ritesh Chitrakar

    14 de marzo de 2020 a las 1:46

  • Al momento de escribir, tuve el mismo rendimiento con o sin depuración, ya que en 2020/2019 composer deshabilitó automáticamente xdebug cuando se ejecutaba, a pesar de que la instalación de yii2-starter-kit tomó alrededor de 200 segundos con todas las bibliotecas, ya sea w/wo xdebug, por lo que esta respuesta se está volviendo obsoleta

    – FantomX1

    25 mayo 2020 a las 16:10

  • Vi esto, saqué mi depurador. Descubrí que a pesar de que xdebug está configurado solo para FPM, la CLI lo había iniciado y mi IDE estaba sentado allí en un punto de interrupción esperándome. Presiona continuar y el compositor volvió a entrar.

    – ppostma1

    25 de junio de 2020 a las 4:01

avatar de usuario
ppan

Lo mismo aquí. Obtenga más detalles con “composer install –profile -vvv”. En mi caso, lleva mucho tiempo descargar algunos archivos JSON. Se almacenan en caché en mi servidor, pero aún se descargan con cada llamada de instalación/actualización de Composer.

… 30 minutos después …

Parece un problema de rendimiento @packagist.org. ¡Ahora la instalación de Composer se ejecuta en 2 segundos! Y los archivos JSON descargados se almacenan correctamente en caché.

avatar de usuario
aarón chambelán

Me estaba encontrando con este problema, y ​​me estaba lanzando a una curva ya que no tengo Xdebug instalado en ninguna parte de mi máquina. resulta que era IPv6 fallas en el modo de direccionamiento. Así que para probar corrí

curl --ipv4 'https://packagist.org/packages.json'
curl --ipv6 'https://packagist.org/packages.json'

IPv4 pasó, pero IPv6 falló. Al final, debe averiguar por qué su pila de red no lo admite, pero en mi caso, decidí dar preferencia al tráfico IPv4 hasta que pueda resolverlo. En CentOS Creé/modifiqué el archivo /etc/gai.conf y puse lo siguiente:

label       ::1/128        0
label       ::/0           1
label       2002::/16      2
label       ::/96          3
label       ::ffff:0:0/96  4
precedence  ::1/128        50
precedence  ::/0           40
precedence  2002::/16      30
precedence  ::/96          20
precedence  ::ffff:0:0/96  100

En Ubuntu también puede editar ese archivo y descomentar la línea

precedence ::ffff:0:0/96  100

Fuente en Rackspace Community Hub

  • Solo como nota, esto no me pareció ayudar personalmente, aunque tendré que volver a simularlo para confirmar todas las opciones, cuál de ellas podría ser la causa.

    – FantomX1

    31 mayo 2020 a las 15:31

  • @FentomX1 Lamento escuchar eso. Es por eso que incluí la prueba arriba. Si realiza ambas pruebas de curl y se está conectando, obviamente, los cambios no deberían realizarse porque su red está configurada correctamente.

    – Aarón Chamberlain

    1 de junio de 2020 a las 16:53

  • Encontré un breve video de YouTube que muestra cómo hacer esto en Windows 10. Solucionó mi problema. youtube.com/watch?v=63Lt_vlNWLc

    – Marco

    20 de septiembre de 2020 a las 3:59

En Ubuntu Xenial 16.04 VPS, debe hacer lo siguiente:

sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"
composer global require hirak/prestissimo

Configura IPv4 como preferido sobre IPv6.

https://serverfault.com/questions/93717/setting-ipv4-as-preferred-protocol-over-ipv6

  • Solo como nota, esto no me pareció ayudar personalmente, aunque tendré que volver a simularlo para confirmar todas las opciones, cuál de ellas podría ser la causa.

    – FantomX1

    31 mayo 2020 a las 15:31

  • @FentomX1 Lamento escuchar eso. Es por eso que incluí la prueba arriba. Si realiza ambas pruebas de curl y se está conectando, obviamente, los cambios no deberían realizarse porque su red está configurada correctamente.

    – Aarón Chamberlain

    1 de junio de 2020 a las 16:53

  • Encontré un breve video de YouTube que muestra cómo hacer esto en Windows 10. Solucionó mi problema. youtube.com/watch?v=63Lt_vlNWLc

    – Marco

    20 de septiembre de 2020 a las 3:59

Editar: Conclusión: ninguna solución enumerada aquí o generalmente parece ser a prueba de balas. Lo que finalmente ayuda es usar el compositor de forma incremental, requiriendo o eliminando solo un paquete a la vez usando composer require, composer remove comando, también se refiere a agregar cualquier configuración “no específica de dependencia”, se puede agregar/eliminar cualquier biblioteca con el fin de actualizar/refrescar la configuración de caché de bloqueo de composer.json.

Agrupando mi experiencia con respuestas de aquí y del enlace en cuestión.

Antes probé todas las soluciones mencionadas en esta pregunta hasta este momento. Sin embargo, todavía no me ayudó, aunque probé/noté que la instalación de cualquier otra biblioteca individual era considerablemente rápida, así que seguí investigando bibliotecas una por una que podrían causar el cuello de botella.

1) SÍ Y lo ubiqué como codecepción, "codeception/codeception": "2.4.0",

Tomó casi 200 segundos solo, aunque ejecutarlo junto con otras bibliotecas en algunos momentos pareció durar casi 12 minutos. Además, el compositor no parece reflejar el tiempo real cuando, después de iniciarse durante 20 segundos, genera una ejecución de 0,35 segundos y así sucesivamente.

[374.9MiB/173.14s]     39/45:   https://codeload.github.com/sebastianbergmann/php-text-template/legacy.zip/31f8b717e51d9a2afca6c9f046f5d69fc27c8686
[374.9MiB/173.16s]     40/45:   https://codeload.github.com/sebastianbergmann/diff/legacy.zip/720fcc7e9b5cf384ea68d9d930d480907a0c1a29
[374.9MiB/173.17s]     41/45:   https://codeload.github.com/sebastianbergmann/exporter/legacy.zip/68609e1261d215ea5b21b7987539cbfbe156ec3e
[374.9MiB/173.19s]     42/45:   https://codeload.github.com/sebastianbergmann/phpunit-mock-objects/legacy.zip/f9756fd4f43f014cb2dca98deeaaa8ce5500a36e
[374.9MiB/173.20s]     43/45:   https://codeload.github.com/sebastianbergmann/recursion-context/legacy.zip/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8
[374.9MiB/173.23s]     44/45:   https://codeload.github.com/sebastianbergmann/php-code-coverage/legacy.zip/4cab20a326d14de7575a8e235c70d879b569a57a
[374.9MiB/173.24s]     45/45:   https://codeload.github.com/doctrine/instantiator/legacy.zip/ae466f726242e637cebdd526a7d991b9433bacf1
[374.9MiB/173.24s]     Finished: success: 45, skipped: 0, failure: 0, total: 45
[374.8MiB/173.25s] Analyzed 6622 packages to resolve dependencies
[374.8MiB/173.25s] Analyzed 435842 rules to resolve dependencies
[374.8MiB/173.25s] Package operations: 54 installs, 0 updates, 0 removals
[374.8MiB/173.26s] Installs: sebastian/recursion-context:3.0.0, sebastian/exporter:3.1.2, doctrine/instantiator:1.3.0, phpunit/php-text-template:1.2.1, phpunit/phpunit-mock-objects:6.1.2, codeception/stub:1.0.4, sebastian/diff:3.0.2, sebastian/comparator:3.0.2, theseer/tokenizer:1.1.3, sebastian/version:2.0.1, sebastian/environment:3.1.0, sebastian/code-unit-reverse-lookup:1.0.1, phpunit/php-token-stream:3.1.1, phpunit/php-file-iterator:1.4.5, phpunit/php-code-coverage:6.0.5, sebastian/object-reflector:1.1.1, sebastian/object-enumerator:3.0.3, sebastian/global-state:2.0.0, phpunit/php-timer:2.1.2, symfony/polyfill-ctype:v1.17.0, webmozart/assert:1.8.0, phpdocumentor/reflection-common:2.1.0, phpdocumentor/type-resolver:1.1.0, phpdocumentor/reflection-docblock:5.1.0, phpspec/prophecy:v1.10.3, myclabs/deep-copy:1.9.5, sebastian/resource-operations:1.0.0, phar-io/version:1.0.1, phar-io/manifest:1.0.1, phpunit/phpunit:7.1.5, codeception/phpunit-wrapper:7.6.1, symfony/yaml:v4.4.8, behat/gherkin:v4.6.2, symfony/polyfill-mbstring:v1.17.0, symfony/dom-crawler:v4.4.8, symfony/css-selector:v4.4.8, symfony/browser-kit:v4.4.8, symfony/event-dispatcher-contracts:v1.1.7, psr/container:1.0.0, symfony/event-dispatcher:v4.4.8, symfony/service-contracts:v2.0.1, symfony/polyfill-php73:v1.17.0, symfony/console:v4.4.8, symfony/finder:v4.4.8, ralouphie/getallheaders:3.0.3, psr/http-message:1.0.1, guzzlehttp/psr7:1.6.1, guzzlehttp/promises:v1.3.1, symfony/polyfill-php72:v1.17.0, symfony/polyfill-intl-idn:v1.17.0, guzzlehttp/guzzle:6.5.3, symfony/process:v4.4.8, facebook/webdriver:1.7.1, codeception/codeception:2.4.0
[374.8MiB/173.28s]   - Installing sebastian/recursion-context (3.0.0): [374.9MiB/173.28s] Loading from cache[374.9MiB/173.28s]
[374.9MiB/173.28s]  Extracting archive[374.9MiB/173.51s]   - Installing sebastian/exporter (3.1.2): [374.9MiB/173.52s] Loading from cache[374.9MiB/173.52s]
[374.9MiB/173.52s]  Extracting archive[374.9MiB/173.75s]   - Installing doctrine/instantiator (1.3.0): [374.9MiB/173.76s] Loading from cache[374.9MiB/173.76s]
[374.9MiB/173.76s]  Extracting archive[374.9MiB/174.00s]   - Installing phpunit/php-text-template (1.2.1): [374.9MiB/174.00s] Loading from cache[374.9MiB/174.00s]
[374.9MiB/174.00s]  Extracting archive[374.9MiB/174.23s]   - Installing phpunit/phpunit-mock-objects (6.1.2): [374.9MiB/174.23s] Loading from cache[374.9MiB/174.23s]
[374.9MiB/174.23s]  Extracting archive[374.9MiB/174.55s]   - Installing codeception/stub (1.0.4): [374.9MiB/174.56s] Loading from cache[374.9MiB/174.56s]
[374.9MiB/174.56s]  Extracting archive[374.9MiB/174.80s]   - Installing sebastian/diff (3.0.2): [374.9MiB/174.80s] Loading from cache[374.9MiB/174.80s]
[374.9MiB/174.80s]  Extracting archive[374.9MiB/175.07s]   - Installing sebastian/comparator (3.0.2): [374.9MiB/175.07s] Loading from cache[374.9MiB/175.07s]
[374.9MiB/175.07s]  Extracting archive[374.9MiB/175.33s]   - Installing theseer/tokenizer (1.1.3): [374.9MiB/175.33s] Loading from cache[374.9MiB/175.33s]

La carrera antes

 Problem 1
    - Installation request for codeception/codeception 2.4.0 -> satisfiable by codeception/codeception[2.4.0].
    - Conclusion: remove symfony/finder v5.0.8
    - Conclusion: don't install symfony/finder v5.0.8
    - codeception/codeception 2.4.0 requires symfony/finder >=2.7 <5.0 -> satisfiable by symfony/finder[v2.7.0, v2.7.1, v2.7.10, v2.7.11, v2.7.12, v2.7.13, v2.7.14, v2.7.15, v2.7.16, v2.7.17, v2.7.18, v2.7.19, v2.7.2, v2.7.20, v2.7.21, v2.7.22, v2.7.23, v2.7.24, v2.7.25, v2.7.26, v2.7.27, v2.7.28, v2.7.29, v2.7.3, v2.7.30, v2.7.31, v2.7.32, v2.7.33, v2.7.34, v2.7.35, v2.7.36, v2.7.37, v2.7.38, v2.7.39, v2.7.4, v2.7.40, v2.7.41, v2.7.42, v2.7.43, v2.7.44, v2.7.45, v2.7.46, v2.7.47, v2.7.48, v2.7.49, v2.7.5, v2.7.50, v2.7.51, v2.7.6, v2.7.7, v2.7.8, v2.7.9, v2.8.0, v2.8.1, v2.8.10, v2.8.11, v2.8.12, v2.8.13, v2.8.14, v2.8.15, v2.8.16, v2.8.17, v2.8.18, v2.8.19, v2.8.2, v2.8.20, v2.8.21, v2.8.22, v2.8.23, v2.8.24, v2.8.25, v2.8.26, v2.8.27, v2.8.28, v2.8.29, v2.8.3, v2.8.30, v2.8.31, v2.8.32, v2.8.33, v2.8.34, v2.8.35, v2.8.36, v2.8.37, v2.8.38, v2.8.39, v2.8.4, v2.8.40, v2.8.41, v2.8.42, v2.8.43, v2.8.44, v2.8.45, v2.8.46, v2.8.47, v2.8.48, v2.8.49, v2.8.5, v2.8.50, v2.8.52, v2.8.6, v2.8.7, v2.8.8, v2.8.9, v3.0.0, v3.0.1, v3.0.2, v3.0.3, v3.0.4, v3.0.5, v3.0.6, v3.0.7, v3.0.8, v3.0.9, v3.1.0, v3.1.1, v3.1.10, v3.1.2, v3.1.3, v3.1.4, v3.1.5, v3.1.6, v3.1.7, v3.1.8, v3.1.9, v3.2.0, v3.2.1, v3.2.10, v3.2.11, v3.2.12, v3.2.13, v3.2.14, v3.2.2, v3.2.3, v3.2.4, v3.2.5, v3.2.6, v3.2.7, v3.2.8, v3.2.9, v3.3.0, v3.3.1, v3.3.10, v3.3.11, v3.3.12, v3.3.13, v3.3.14, v3.3.15, v3.3.16, v3.3.17, v3.3.18, v3.3.2, v3.3.3, v3.3.4, v3.3.5, v3.3.6, v3.3.7, v3.3.8, v3.3.9, v3.4.0, v3.4.1, v3.4.10, v3.4.11, v3.4.12, v3.4.13, v3.4.14, v3.4.15, v3.4.16, v3.4.17, v3.4.18, v3.4.19, v3.4.2, v3.4.20, v3.4.21, v3.4.22, v3.4.23, v3.4.24, v3.4.25, v3.4.26, v3.4.27, v3.4.28, v3.4.29, v3.4.3, v3.4.30, v3.4.31, v3.4.32, v3.4.33, v3.4.34, v3.4.35, v3.4.36, v3.4.37, v3.4.38, v3.4.39, v3.4.4, v3.4.40, v3.4.5, v3.4.6, v3.4.7, v3.4.8, v3.4.9, v4.0.0, v4.0.1, v4.0.10, v4.0.11, v4.0.12, v4.0.13, v4.0.14, v4.0.15, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7, v4.0.8, v4.0.9, v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.2, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.2.0, v4.2.1, v4.2.10, v4.2.11, v4.2.12, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8, v4.2.9, v4.3.0, v4.3.1, v4.3.10, v4.3.11, v4.3.2, v4.3.3, v4.3.4, v4.3.5, v4.3.6, v4.3.7, v4.3.8, v4.3.9, v4.4.0, v4.4.1, v4.4.2, v4.4.3, v4.4.4, v4.4.5, v4.4.6, v4.4.7, v4.4.8].
    - Can only install one of: symfony/finder[v2.7.0, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.1, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.10, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.11, v5.0.8].

2) SÍ Por cierto, prestissimo como mencioné ya se aplicó y pareció ayudar, ya que en otra computadora muy rápida que tiene un Internet mucho más rápido sin codecepción, la instalación tomó 5 veces más, 518 segundos, mientras que quizás debido a prestissimo u otros consejos aquí, tomó 110 segundos.

composer global require hirak/prestissimo

3) SÍ Windows es lento, al igual que las carpetas virtualizadas de Windows a Linux. Correr fuera de la carpeta compartida dentro de Linux pareció acelerarlo aproximadamente el doble. Aunque podría ser debido al caché.

4) NO

    "process-timeout": 1800,

es por proceso único como git checkout y no pareció ayudar en absoluto, incluso establecido en 10, ya que ya era considerablemente enorme. Tal vez solo ayude cuando hay una interrupción total de algún servicio.

5) SÍ la instalación con una carpeta de proveedor eliminada o vacía = recién parece ser considerablemente más rápida (alrededor de 1 minuto o más), que agregar a los archivos del proveedor y otros paquetes existentes en él

6) SÍ parece ser más lento en Ubuntu18 apache2 sin la imagen propia de xdebug, que en Debian10 php-fpm incluso con xdebug en Yii2-starter-kit, por alguna razón aproximadamente dos veces más lento, cat /etc/*-release para averiguar la distribución de Linux

7) NO
php -ddefault_socket_timeout=1 /usr/local/bin/composer --verbose --profile install mencionado aquí no pareció ayudar La actualización lenta de las dependencias del compositor, a pesar de la marca –prefer-dist ni se mencionó el protocolo IP v6 v v4 Aunque podría deberse a la memoria caché.

8) NO La instalación de zip no parece ayudar, la instalación de PHP tenía zip preinstalado, todavía se quejaba de que no estaba allí hasta que se instalaron como paquetes de Linux, pero hizo que el proceso en una sola simulación fuera más lento en 100 segundos de 650 a 750 segundos. Mismas condiciones ambientales.
As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension
https://stackoverflow.com/a/51208804/3419535 pruebas en condiciones sin caché --no-cache

9) SÍ retirar "minimum-stability ": "dev",

10) SI usar prefer-dist composer require robmorgan/phinx:@dev --prefer-dist -vvv --profile (usando un comando require como ejemplo, ya que el uso de comandos require parciales como se mencionó anteriormente, en lugar de una instalación completa a través de un comando de instalación, parece ser una de las aceleraciones más significativas, además de requerir @dev- como en los puntos anteriores cuando minimum-stability: dev no se aplica genéricamente a todas las dependencias parece ser inofensivo si se usa por caso (dependencia))

  • ¿Cómo se relaciona esto con la pregunta dada? De acuerdo con la descripción del problema, no hay una sola dependencia enumerada en el problema de los OP

    –Nico Haase

    10 de agosto de 2020 a las 10:35

  • El problema debe abordarse de manera genérica, traté de resumir todo lo que me ayudó y agregué algunas otras soluciones de otros lugares. No siempre solo para lo que pide el autor de la pregunta, aquí vienen miles de escenarios de otros usuarios. La mayoría de las respuestas son genéricas. Composer require es básicamente una subparte de la instalación del compositor. El hecho de que también haya usado una palabra/comando ‘requerir’ en la respuesta, no significa que no se aplique también a la instalación, pero si lo desea, puedo eliminar esa palabra. ‘No hay una sola dependencia en la lista’, pero cómo cambia cualquier cosa, la instalación del compositor no se trata más que de dependencias.

    – FantomX1

    10 de agosto de 2020 a las 10:47

  • Pasé de 1 punto a -1 solo unos minutos después porque te respondí, tal vez porque me votaste anteriormente. Dígame que la respuesta elegida prestistimo o usar ipv 6 o deshabilitar xdebug tampoco es genérica y no se aplica a un comando concreto de composer require. Me disculpo por algunas ediciones apresuradas, pero también lo uso como un wiki personal, y ni siquiera mencioné un nombre de dependencia concreto, pero lo ajustaré. Si no te gusta que cometí un error tipográfico, menciónalo, pero no ser genérico no tiene sentido. Usé un comando ‘requerir’ como referencia, ya que usar ‘requerir’ es una de las soluciones en sí.

    – FantomX1

    10 de agosto de 2020 a las 10:56


  • El OP preguntó por qué Composer es lento con cero dependencias – incluso si su lista de cosas podría ayudar en muchas otras situaciones, no veo ninguna conexión con la pregunta dada

    –Nico Haase

    10 de agosto de 2020 a las 11:22

  • Prestissimo ayuda incluso con una lista de requisitos vacía: el compositor descarga algunos archivos independientemente de la lista de dependencias, por lo que la descarga paralela también ayudará aquí.

    – robar006

    10 de agosto de 2020 a las 11:44

¿Ha sido útil esta solución?