son rails que las instalar gems gemas ruby-on-rails ruby gemfile

ruby-on-rails - rails - ruby gemfile



¿El orden de las gemas en tu Gemfile hace una diferencia? (2)

Cuando usa Bundle.require (lo que hace Rails), las gemas son necesarias en el orden en que aparecen en el Gemfile. No siempre fue así, pero ha sido así por un tiempo .

Dado que Carrierwave requiere RMagick explícitamente cuando sea necesario, no creo que deba importar en su caso; pero estrictamente hablando los dos bloques no son equivalentes.

¿Es importante el orden en el que listas tus gemas? ¿Son estos dos bloques equivalentes?

gem ''carrierwave'' gem ''rmagick''

Y

gem ''rmagick'' gem ''carrierwave''


Bundler no carga las dependencias de gemas por el orden en que las enumeras *, pero sí va por prioridad de origen utilizando este criterio:

  1. La ruta explícita o las opciones de git se agregan a una dependencia de gema, por ejemplo:

    gem ''some-gem'', github: ''somebody/some-gem''

  2. Dependencias explícitamente definidas para gemas que de otro modo se requieren implícitamente de otras dependencias de gemas, es decir, gem ''actionmailer'' gema es implícitamente requerida por gem ''rails''

  3. Si tiene varias fuentes agregadas, buscará de la última a la primera.

Consulte http://gembundler.com/v1.3/man/gemfile.5.html#SOURCE-PRIORITY

* Edición: según la respuesta de Matt, dependiendo de lo que estés tratando de hacer (o de las gemas que estés cargando), el orden PODRÍA importar. Ver Incluso con bundler su pedido de gemas puede ser significativo .