node-sass だけで SCSS をコンパイルする素振り環境を作ってみた

これまで Angular CLI が内蔵しているモノだったり、Gulp プラグインとしてしか使ってこなかった node-sass。今回は node-sass を直で使ってみようと思う。

# 適当な作業ディレクトリを作って移動する
$ mkdir suburi-sass && cd $_

# package.json を作る
$ npm init -y

# node-sass をインストールし devDependencies に追加しておく
$ npm i -D node-sass

# コンパイル時のエントリポイント (起点) となるメインの SCSS ファイルを作っておく
$ touch styles.scss

ココまでできたら、package.json に、以下のようなスクリプト (npm-scripts) を定義する。

{
  "name": "suburi-sass",
  "scripts": {
    "node-sass": "node-sass ./styles.scss -r -o ./ --output-style compressed && node-sass ./styles.scss -r -o ./ --output-style compressed -w"
  },
  // 以下略
}

node-sass の -w (Watch) モードは初回ビルドをしてくれないようなので、どうしてもこういう書き方が必要になる。同じことを2回書いているようでキモいが、おおよそこうしないといけないようだ。

コレで準備完了。CLI で $ npm run node-sass を実行すると、styles.scss を一度コンパイルしたあと、監視モードになる。あとは styles.scss をバンバン書いていけば良いだけ。

もしも npm run がうまくいかず、Error: ENOENT: no such file or directory, scandir '**/node_modules/node-sass/vendor' などといったエラーが出る場合は、以下のコマンドを打って、node-sass の C++ 部分を再ビルドしてやると解決するだろう。

$ npm rebuild node-sass

このように、node-sass だけで SASS / SCSS を素振りするお試し環境がサクッと作れた。