Syntax Error.

[Sy] はじめての Sass (output-styleによる違い)

2018/02/27

前回 node-sass をインストールして Sass を使ってみました。コンパイル後の CSS の形式がデフォルトだとちょっと見づらいので、オプションを指定して出力される CSS の形式を変えてみます。

前回の記事はこちら。この環境を引き続き使います。

⇒ [Sy] はじめての Sass (node-sass利用)

指定可能な出力形式を確認する

--help オプションを使って、どのような出力形式を指定できるのか確認してみます。

$ ./node_modules/.bin/node-sass --help
・
・
  Options
・
・
    --output-style             CSS output style (nested | expanded | compact | compressed)

--output-style というオプションがあるので、これっぽいですね。

説明を見ると、以下を選択できそうです。

  • nested
  • expanded
  • compact
  • compressed

それぞれ試してみましょう。

コンパイルする scssファイル

前回準備した、こちらの style.scss をコンパイルしていきます。

(style.scss)

body {
  color: #333;
  h1 {
    color: #666;
  }
}

コンパイル

では、--output-style を切り替えて、コンパイルを実行していきます。

「nested」

$ ./node_modules/.bin/node-sass --output-style nested style.scss style-nested.css
(style-nested.css)

body {
  color: #333; }
  body h1 {
    color: #666; }

デフォルトはこの nested になってるようですね。

CSSの記法に置き換わっているものの、ネストした状態で表現されてます。

「expanded」

$ ./node_modules/.bin/node-sass --output-style expanded style.scss style-expanded.css
(style-expanded.css)

body {
  color: #333;
}

body h1 {
  color: #666;
}

一番馴染みのある CSSの形式になってます。

「compact」

$ ./node_modules/.bin/node-sass --output-style compact style.scss style-compact.css
(style-compact.css)

body { color: #333; }

body h1 { color: #666; }

こちらもわかりやすいです。無駄な改行を省いてる?

「compressed」

$ ./node_modules/.bin/node-sass --output-style compressed style.scss style-compressed.css
(style-compressed.css)

body{color:#333}body h1{color:#666}

本番環境用など、ファイルサイズを圧縮したい場合に使うと良いですね。

ひとこと

それぞれ環境にあわせて使い分けると良さそうです。