2013-04-26 3 views
7

私はこれまで優れているMichael Hartl's Railsのチュートリアルを行っています。私はAdvanced Setupの章で、TDDに役立つ方法でRails環境を設定します。私はGuardをインストールし、spec/folderにあるテストを実行することで、正常に動作します。しかし、それはこのエラーを吐きます:GuardはWDMをロードしません

C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/listen-1.0.2/lib/listen/adapter.rb:195:in `require': cannot load such file -- wdm (LoadError) 

私はwdmをインストールしました。なぜロードできないのか分かりません。

ListenがWDMの読み込みに問題があるようです。 「Guardは今見ている」と言って終了します。

明白な理由から、スタックトレースの残りの部分を再現しませんでした。最新のRailsインストーラを使用してRailsをインストールしました。何が起きてる?私はこれについて心配する必要がありますか?それは少なくとも部分的に動作するように見えます...

+3

'gem install wdm'? – Yule

+0

私は実際にそれをしたことを追加するのを忘れました。それが私を台無しにしているのです。私は自分のシステムに2つのRubyインストールがあると付け加えるべきです。 RailsInstallerに付属のものと、以前使用していたもの。私は通常のシェルとRailsInstallerシェルの両方から 'gem install wdm'を実行しましたが、これを動作させることはできません。 –

+0

以前のRubyのインストールとRailsInstallerのインストールの両方をアンインストールし、RailsInstallerのみを再インストールしました。それでも同じ問題があります。 –

答えて

14

これは何が起こったかです。デフォルトでは、Windowsでは、Listenはポーリングを使用してファイルシステムの変更をチェックすることになっています。何らかの理由でWDMを使用しようとしていました。だから私はこれを私のGemfileに持っていなければなりませんでした。

require 'rbconfig' 
gem 'wdm', '>= 0.1.0' if RbConfig::CONFIG['target_os'] =~ /mswin|mingw/i 

多分、GuardはWDMを使用しようとしますか?

+0

それはそうしなければなりません。 https://github.com/guard/listen/issues/149残念ながら、それはatmでは動作しませんが、livereloadがワークフローの一部であれば、wdmなしのガードポーリングはほとんど役に立ちません。 – isimmons

1

が、私がこの勧告を得た場所を見つけることはできませんが、私は、WindowsとLinux間でガードを実行するために、次の与えられた:

gem 'rb-inotify', github: 'nex3/rb-inotify', platforms: :ruby, require: false 
gem 'wdm', platforms: :mingw, require: false 

宝石のときにのみロードしようとしているので、偽のそれを作りますそのプラットフォームで実行しています。使用しているルビインストールによっては、Windows環境にmingwの代わりにmswinが必要な場合があります。

関連する問題