Posted at

コマンドラインでstandaloneなsassコンパイル環境を構築

たまーにCSS触るだけなのに、その都度、依存関係と環境変化が早すぎるフロントエンド界隈に翻弄されるのが鬱すぎたので、standaloneなsassコンパイラ+Makefile環境を整えたメモ。


公式曰く、standalone compiler あるよ!dartで書かれてるよ!

https://github.com/sass/dart-sass

ということで、releaseタブから落としてみた。

ふむ、早速ドキュメントガバってるみたいで、なぜかフロントエンドのスクリプトが二種類ある。

dart-sass, sass 中身をみると、前者は deprecated のようで後者を使えらしい。

実体は src/ にあるようで、Flex SDKとか、あの手のフォルダごと配置しろよパターン。

故に、手動でやるなら、 /usr/local/ に cloneした上で、パス通すのが良いのだろう。

なお macOSの場合は、brewで入る & パス通してくれるっぽいので、brew で入れるのが楽ですね。

ということで、下記のようなmakefileを書いて、makeでsassコンパイルを出来るようになりました。

###########################################################################

.SUFFIXES : .scss .css

###########################################################################

OUTPUT_STYLE ?= compressed

CSS = ${TARGET_SCSS_FILE}

###########################################################################

default:

all: ${CSS}

clean:
rm *.css
rm *.css.map

.scss.css:
sass -s ${OUTPUT_STYLE} $<:$@

###########################################################################


余談

brewしたら昔いれたsassが残ってて、overwirteしないとダメだった。

昔のbrewで入れてた sass compiler は ruby 依存だったみたいで、今や ruby環境違いで動かない。

ツール系が、依存の少ない、goとかdartといった言語に移行してくれるのは良いことだ。

自分では、ついPHPで適当なバッチとかツールとかその場凌ぎ優先で書いちゃうけど、先々考えたら、環境依存しずらい、シングルバイナリを吐ける言語で書くようにした方がいいんだろうなぁ、、と。