WindowsでSass(SCSS)を使う準備
最終更新: 2018-07-27
Rubyで動くSass(ruby-sass)は非推奨となりました。
2019年3月26日にサポートが終了します。
🔗 Ruby Sass is Deprecated « Sass Blog
他の方法として、スタンドアロン版をGitHubからダウンロードしたり、npmから入手する方法が紹介されています。
🔗 https://sass-lang.com/install
で、npmで入手できるsass (dart-sass)を試してみたのですが、--watch
でディレクトリを監視している時に文法エラーがあると、その後の監視が動作しなくなることが頻繁にありました。
Ctrl + C
で強制終了して再びコマンドを実行、という手間が面倒で悩んでいました。
そこで、PostCSSを試してみました。 🔗 PostCSSまとめ - Qiita
CSSの未来の仕様を先取りできるプラグインを使おうと思っていましたが、CSS本家の仕様変更によって、習得した記法が仕様から外れてただのオレオレ記法になってしまう危険もあり、不安定だなと感じました。
結局、dart-sassとは別のnode-sassを使うことに落ち着きました。
ただ、PostCSSについては、プリプロセッサー系とは別の、ベンダープレフィックスをコマンド一つで付けてくれるAutoprefixerはとても便利なので、これは使い続けようと思います。
目次
環境
node-sass
node-sassのインストール
node.jsのインストールの説明は省略します。
# (CLIはPowerShellを使います) > npm i -g node-sass
node-sassを使う
Sassの記法の説明は省略します。
# SCSS記法で書いたスタイル指定をCSSに変換する > node-sass index.scss style.css --output-style expanded # ファイルの変更を監視する > node-sass index.scss style.css --output-style expanded -w # 圧縮する > node-sass index.scss style.css --output-style compressed
Autoprefixer
ついでなのでメモしておきます。
Autoprefixerのインストール
# PostCSS, Autoprefixerをインストール > npm i -g postcss-cli autoprefixer
Autoprefixerを使う
まず、対応するブラウザを指定するファイル(.browserslistrc
)を作ります。
🔗 https://github.com/browserslist/browserslist
# 最近の2つのバージョンに対応させる # IEは10から対応となる last 2 version
あとはPowerShellで。
# style.cssを上書きする > postcss style.css -o style.css --no-map --use autoprefixer
組み合わせて使う
SCSS記法でスタイル指定して、node-sassでCSS形式にまとめて、Autoprefixerでベンダープレフィックスを付けます。
package.json
のrun-scriptなら、Windowsでもパイプ記号(|
)でコマンドの結果を渡すことができます。
{ "scripts": { "build": "node-sass sass/index.scss --output-style compressed | postcss -o style.css --use autoprefixer --no-map", "expand": "node-sass sass/index.scss --output-style expanded | postcss -o style.css --use autoprefixer --no-map", "watch": "node-sass sass/index.scss style.css --output-style expanded -w" } }
1番目のbuild
は本番用です。
圧縮され、ベンダープレフィックスもついています。
2番目のexpand
は確認用です。
圧縮されていないので普通に読めます。
3番目のwatch
は普段の開発用です。
# 例: build > npm run build