C/C++のSass Compilierのlibsassを試してみた

フロントエンド周りを触ることがあり、Sassのコンパイル速度改善をするために、
libsassについて軽く調べてみた。

libsassとは

C/C++で書かれたSass Compiler。これ自体は単なるライブラリで、実際にこれを走らせるには
SassCruby-libsassなどを使う。

コンパイラにGCC4.6+またはClang/LLVMが必要だとか。

libsass のインストール

libsassとSassCは共にbrewインストール可能だが、
マニュアルに沿ってインストールする場合は、

libsassとRuby Sassとの互換性

現状ではRuby Sassとの違いもあり、完全に互換性があるわけではない。
実際、Ruby Sassよりも実装が遅れているため、Ruby Sass3.4の機能は多くが利用できない状況らしい。
SassSpec/libsass-todo-issuesを みるとサポート状況わかる。

ちなみにSass Specを使ってみると

libsassで sass spec実行

まだ対応できてないのか、スキップされてる項目が多い。

多言語サポート

libsassのラッパーも多く、主だった言語で使えそう。

libsassへ乗り換えるなら、互換性を考慮する必要があるので、まず調査のためlibsass-todo-issuesを確認するか、一通りまとめてある
Sass Compatibilityなどで確認することが必要そう。

現在のlibsassのバージョンは3.1だが、
リリース計画によると最終的に3.4でRuby Sassに追いつく予定らしいので、
それまで待つでもしれない。

しかし、最新のSassの機能に縛られなければ、十分に機能を享受できそうだし、やはりコンパイル時間の短縮は魅力的。
コンパル結果が同じなら使わない理由がなさそうな気がする。

ちなみに、Sassのライブラリである、
compassは2.0でデフォルトのコンパイルはlibsassになる予定、Burbonはすでにサポートしている。

以下のようにCompassを使っているscssファイルをsasscでコンパルすると

となってしまう。

Compassのcore mixinを切り出したcompass-mixinsを使えば、
Compassでもlibsassを利用可能っぽい。

grunt-sassを使用する場合は次のような感じになる。

RailsプロジェクトなどでSassコンパイルに時間かかってるとかだと、乗り換えてみるのもいのじゃないかな。

参考にしたページ
Lightning fast Sass compiling with libsass, Node-sass and Grunt-sass
Switching from Ruby Sass to LibSass

Comments