先日、Sassのコンパイル時に「Listen will be polling for changes. Learn more at https://github.com/guard/listen#polling-fallback.」といったエラーが表示されました。色々と厄介だったので備忘録として残しておきたいと思います。
エラーが発生したタイミング
Sassのwatchコマンドを実行したタイミングでエラーが発生しました。Listen warningと表示されています。
[Listen warning]: Listen will be polling for changes. Learn more at https://github.com/guard/listen#polling-fallback.
調べてみるとlistenのインストールが必要とのこと、なので下記コマンドでlistenをインストールしてみる。
$ sudo gem install listen 〜 略 〜 ERROR: Error installing listen: ruby_dep requires Ruby version >= 2.2.5, ~> 2.2.
Rubyのバージョンが低いためlistenのインストールができず、、以降は下記の作業で解決しました。
解決までの行なった作業を時系列で
1.HomebrewでRubyをインストール → Homebrewのアップデート → Rubyインストール失敗
HomebrewでRubyをインストールするもののHomebrewが古いためアップデートが始まる。Homebrewのアップデートが完了し再度Rubyをインストールするものの、今度はxcodeがらみのエラーが、、
Error: Xcode alone is not sufficient on Sierra. Install the Command Line Tools: xcode-select --install
2. Command Line Toolsのインストール
エラーの指示通り、下記コマンドを入力しCommand Line Toolsをインストール。ダイアログが表示されるので画面の指示に従ってインストールを進めていく。
$ xcode-select --install
3. HomebrewでRubyをインストール
インストールが完了したら再度HomebrewでRubyをインストールします。
$ brew install ruby 〜 略 〜 ==> Summary 🍺 /usr/local/Cellar/ruby/2.5.0: 3,323 files, 18.4MB $ ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
インストールが完了しバージョンを確認してもまだ古いバージョンで表示されてしまいます、、調べてみるとPATHを通す必要があるとのこと。
4. インストールしたrubyのPATHを通す
下記コマンドで.bashrcファイルにPATHを通す記述をします。保存したら更新して反映させます。
$ vim .bashrc export PATH=$PATH:/usr/local/Celler/ruby/ :wq $ source .bashrc
PATHを通したら再度バージョンを確認、無事にアップデートできました。
$ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin16]
5. listenのインストール
ここまできたらやっと最初にやりたかったlistenのインストールを行います。下記のコマンドを入力します。
$ sudo gem install listen 〜 略 〜 Done installing documentation for rb-fsevent, ffi, rb-inotify, ruby_dep, listen after 14 seconds 5 gems installed
上記の作業を完了後、Sassでwatchコマンドを入れてみると無事にエラーが無くなりました。色々と疲れました、、お困りの方は参考に!