LoadError: no se Pudo cargar el ‘escuchar’ gem (Carriles 5)

Tengo una API modo de Rieles de 5 app que no me deja ejecutar rake routes o rails s. El error que me sale es:

$ rake routes
rake aborted!
LoadError: Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile
.../config/environment.rb:5:in `<top (required)>'
LoadError: cannot load such file -- listen
.../config/environment.rb:5:in `<top (required)>'
Tasks: TOP => routes => environment
(See full trace by running task with --trace)

He comprobado que listen es en el grupo de desarrollo en mi Gemfile:

group :development do
  gem 'listen', '~> 3.1.5'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

Y que es en mi Gemfile.bloqueo:

$ cat Gemfile.lock | grep 'listen'
    listen (3.1.5)
    spring-watcher-listen (2.0.0)
      listen (>= 2.7, < 4.0)
  listen (~> 3.1.5)
  spring-watcher-listen (~> 2.0.0)

He paquete actualizado, y el paquete instalado y comprobado que gem install listen obras. Esto fue a trabajar a principios de esta semana, pero no estoy teniendo la suerte de volver a través de mi cometa.

$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]

No la puedo ver en vendor/cache pero no estoy seguro de qué hacer con eso…

$ bundle package | grep 'listen'

Agradezco la ayuda!

Actualización:

Puedo «arreglar» el problema poniendo gem 'listen', '~> 3.1.5' en el mundial Gemfile (y la eliminación de :development). A continuación, todos los errores desaparecen y todo funciona, pero me parece mal.

  • Tuve este problema y lo solucionó mediante la ejecución de bundle install --with development test.

9 Kommentare

  1. 67

    Si usted está en los carriles 5 y está utilizando el valor predeterminado config/environments/desarrollo.rb archivo va a tener esta línea de código no.

    config.file_watcher = ActiveSupport::EventedFileUpdateChecker

    Esto requiere la joya de escuchar. Esto me tiró un poco como yo lo estaba haciendo rails 4 actualizaciones rails 5

    editar:
    Olvidé mencionar que si se puede comentar que la línea de código que no necesitan escuchar la joya más.

    • Gracias. Necesitaba comentario fuera de esa línea. Esta es una especie de silencio de dependencia en el sentido de que no se muestra como una dependencia en bundler.
    • Sí Comentar que hace que el error anterior desaparece. Olvidó mencionar que parte.
    • en lugar de comentarlo, me hizo condicional en if defined? Listen. Prefiero no describir las razones por qué esto era necesario…
    • Esto fue clave para mí – la comprensión de que escuchar (y la primavera, y la primavera-watcher-escuchar) eran opcionales en desarrollo. Hice el anterior desarrollo.rb cambio, y comentó los 3 gemas de la Gemfile, reran bundle install, y Voila! mi aplicación rails iba a ejecutar a nivel local nuevo! 😀
    • Me gustaría animar el uso de la escucha de la gema aquí como se deben hacer las cosas más eficientes en la detección de cambios en el código de desarrollo.
    • Gracias @marca -, salvó mi vida.

  2. 46

    Quizás por error han establecido bundle install --without en algún punto, estoy seguro que lo hizo de todos modos.

    Para revertir esta carrera:

    bundle config --delete without

    También corrí bundle config --delete with como yo manualmente with opción por error. La ejecución de los dos debe volver a comportamiento por defecto.

    Después de haber eliminado el without config podía ejecutar con éxito un bundle install de nuevo y después de mi rails s, rails db:migrate etc. trabajó.


    Puede confirmar si este es su problema mediante la ejecución de bundle install y mirar la segunda y última línea en la salida. Si los estados:

    Gems in the groups development and test were not installed.

    Es que para asegurarse de que la solución anterior debe trabajar para usted.

    • bundle config --delete without solucionado el problema para mí. Gracias
    • ¿Por qué quieres instalar de prueba/desarrollo de gemas en una máquina de producción? En lugar de ejecutar los comandos en explícito el modo de producción.
  3. 16

    Voy a postear esto como una respuesta, pero no me gusta.

    Puedo «arreglar» el problema poniendo gem 'listen', '~> 3.1.5' en el mundial Gemfile (y la eliminación de :development). A continuación, todos los errores desaparecen y todo funciona, pero me parece mal.

    • teniendo el mismo problema ahora mismo, cualquier actualización sobre esto?
    • por desgracia, no. Esperemos que la solución publicado trabaja para usted en el momento.
    • bueno, sí lo hizo, pero no me gusta esta solución más que hacer… gracias de todos modos por ello!
    • Hola, me gustaría saber si es posible desactivar la escucha joya completamente? En particular, en la producción?
    • Yo tenía el mismo error hoy, he comprobado mi suspision y me resultó que yo tenía razón. Voy a publicar como una posible respuesta.
  4. 9

    He usado este: bundle install --without development

    De Error:

    No se pudo cargar el ‘escuchar’ joya. Agregar gem 'listen' para el grupo de desarrollo de tu Gemfile (LoadError)

    Después de esto, el uso de ese código:

    bundle config --delete without
    bundle config --delete with

    Finalmente

    bundle install
    • Como un mono de volar un 747 yo introducen los comandos y trabajó como un encanto! heptad chr.
    • Esto no funciona para mí (otra respuesta hizo), pero upvote para hilarante comentario sobre el mono de volar un 747 😀
  5. 8

    He tenido un problema similar el día de hoy después de la actualización de los Rieles 5.1.5 para 5.2.0. Primera vez que ejecuta el servidor no fue el siguiente ‘falta de activos problema:

    ActionView::Template::Error (The asset "asterisk_orange.png" is not present in the asset pipeline.)

    Tratando de precompilar los activos muestra la ‘joya escuchar error’:

    $ bundle exec rake assets:precompile
    rake aborted!
    LoadError: Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile

    Mi solución fue el conjunto explícito entorno de producción:

    $ RAILS_ENV=production bundle exec rake assets:precompile

    Este precompila los activos w/o problemas y la ‘falta de activos problema se ha solucionado.

  6. 6

    Estoy teniendo el mismo problema mediante la ejecución de rails c.

    Por la lectura de este otro Desbordamiento de Pila post me di cuenta de que es normal que tanto bundle exec rake comando o rails console se ejecutan en un defecto production medio ambiente.

    Me di cuenta de que va a resolver el problema:

    1. la adición de export RAILS_ENV=production en ~/.bash_profile
    2. escribiendo explícitamente el entorno en el que quiero que el comando a ejecutar como bundle exec rake a_rake:task RAILS_ENV=production rails console --env=production etc…
    • Yo tenía el mismo problema porque estaba instalando mi aplicación con bundle install --without development test y, a continuación, se ejecuta sin especificar RAILS_ENV=production. Así que mi aplicación se ejecuta en development modo, sin el desarrollo de las gemas instaladas.
  7. 4

    He tenido el mismo problema. Gracias a @newdark respuesta que se me ocurrió la solución correcta. Básicamente, quería implementar carriles en production modo. Pero, obviamente, se olvidó de establecer la variable de entorno RAILS_ENV=production antes de ejecutar el servidor.

    Así que para recapitular, las dependencias para production modo se instalaron mientras que los rieles intentado iniciar en development modo debido a olvidar para establecer RAILS_ENV=production. Si fui a añadir la gema listen a la production dependencias, yo estaría funcionando en el modo de desarrollo, sin ser capaz de aviso.

    Para mí, la solución fue hacer export RAILS_ENV=production antes de ejecutar cualquier rieles de comandos y mantener las dependencias intacta. Espero que me las arreglé para explicar.

  8. 0

    Tuve el mismo error al intentar generar mongoid database file.

    pero he creado rails new project en ruby 2.5.1. Su ruby es 2.2. así, la causalidad podría ser diferente en mi situtation.

    cuando he usado rails new project, fue creado en la versión 5.2, entonces me cambió la gema 5.1.2 y el problema que se plantea. Cuando he creado con rails _5.1.6_ new en Gemfile no se genera adicionales pack para el desarrollo.

      group :development do
          # Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
          gem 'web-console', '>= 3.3.0'
          gem 'listen', '>= 3.0.5', '< 3.2'
          # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
          gem 'spring'
          gem 'spring-watcher-listen', '~> 2.0.0'
        end

    de esta manera ‘escuchar’ me mostró en el gemfile de forma automática

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea