我有一个API模式的Rails 5应用程序,它不允许我运行rake routes或Rails s。我得到的错误是:
$rake路由
雷克流产了!
LoadError:无法加载“侦听”gem。将“gem”listen“添加到Gemfile的开发组中
…/config/environment.rb:5:in`<;顶部(必需)>;'
LoadError:无法加载此类文件--侦听
…/config/environment.rb:5:in`<;顶部(必需)>;'
任务:TOP=>;路线=>;环境
(通过使用--trace运行任务查看完整跟踪)
我已经验证了listen在我的GEM文件的开发组中:
小组:开发
gem'倾听','~>;3.1.5'
#Spring通过让应用程序在后台运行来加速开发。阅读更多:https://github.com/rails/spring
宝石“春天”
gem“春天守望者聆听”,“~>;2.0.0'
终止
它在我的Gemfile.lock中:
$cat Gemfile.lock | grep'listen'
听(3.1.5)
spring watcher listen(2.0.0)
倾听(>;=2.7,<;4.0)
倾听(~>;3.1.5)
spring watcher侦听(~>;2.0.0)
我已经对bundle进行了更新,并安装了bundle,并验证了gem install listen是否有效。本周早些时候,这是有效的,但我没有运气回去完成我的承诺
$ruby-v
ruby 2.2.3p173(2015-08-18修订版51636)[x86_64-darwin14]
我在供应商/cache中看不到它,但我不确定该怎么做
$bundle包| grep'listen'
谢谢你的帮助
更新:
我可以通过放置gem'listen',“~”来“修复”问题;3.1.5'在全局GEM文件中(并将其从:development中删除)。然后所有的错误都消失了,一切正常,但这似乎是错误的
如果您使用的是rails 5,并且使用的是默认的config/environments/development.rb文件,那么其中将包含这一行代码
config.file\u watcher=ActiveSupport::EventedFileUpdateChecker
这需要宝石听。当我在做rails 4升级到rails 5时,这让我有点吃惊
编辑:
忘了提一下,如果你把那行代码注释掉,它就不再需要listengem了