I've got an API mode Rails 5 app that won't let me run rake routes
or rails s
. The error I get is:
$ 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)
I've verified that listen
is in the development group in my 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
And that it's in my Gemfile.lock:
$ 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)
I've bundle updated, and bundle installed, and verified that gem install listen
works. This was working earlier this week, but I'm not having luck going back through my commits.
$ ruby -v ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
I don't see it in vendor/cache
but I'm not sure what to make of that...
$ bundle package | grep 'listen'
Appreciate the help!
Update:
I can "fix" the problem by putting gem 'listen', '~> 3.1.5'
in the global Gemfile (and removing it from :development
). Then all the errors go away and everything works, but that seems wrong.
If you are on rails 5 and you are using the default config/environments/development.rb file it will have this line of code in there.
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
This requires the gem listen. This threw me for a bit as I was doing a rails 4 upgrades to a rails 5
edit: Forgot to mention that if you comment that line of code out it will not need the listen gem anymore.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With