「undefined method `has?’ for Sass::Util:Module Did you mean? hash」の解決方法

とあるプロジェクトで、Ruby の sass でコンパイルする環境があり、その環境を構築してコンパイルしようとしたところ、以下のエラーがでてきてしまいました。

[13:10:42] Starting 'scss'...
[13:10:42] NoMethodError:
[13:10:42] undefined method `has?' for Sass::Util:Module
Did you mean?  hash
               Hash
[13:10:42] Use --trace for backtrace.

Ruby と Sass の環境は普段やっていないので、どうしたもんかと調べたところ、以下のサイトで Sass のバージョンを Sass 3.7.4 から Sass 3.4.25 に変えたら解決したという報告があり、さっそく試してみました。

https://stackoverflow.com/questions/54599435/undefined-method-has-for-sassutilmodule-nomethoderror-error-on-debian

現在のSassを調べたところ、3.5.3のバージョンであることがわかりました。

$ sass -v
Sass 3.5.3 (Bleeding Edge)

まずは使用しているSassをアンインストールします。

$ sudo gem uninstall sass

Sass 3.4.25 を新たにインストールします。

$ gem install sass -v 3.4.25

以上です。これでなんとかコンパイルすることができるようになりました。

石井秀幸@WEBデザイナー
横浜WordPress Meetup 主宰/株式会社ノクチ基地 取締役/モンゼンクリエイティブ合同会社 代表
WEB制作に関する技術や役立つ情報を発信していきます。10年にわたるWordPress歴を背景に、幅広いアイデアを形にするお手伝いをしています。