自分のMacにもタスクランナーである「Grunt」を入れたので、プライベートな開発でも作業の自動化が可能になっています。WordPressのテーマもローカルで開発していて、最近Gruntをテーマのディレクトリにインストールしました。今後は肥大化したstyle.cssをSASSで書いて、なおかつ機能ごとに分割させて効率良く開発していこうと考えており、今回Gruntを使っての開発環境を整えました。
Sassとは
SassはCSSのメタ言語です。IT用語辞典では、
プログラミング言語の仕様を取り入れて効率的にCSSを定義できるようにした言語で、変数や算術演算、セレクタ指定の入れ子(ネスト)、外部ファイルの読み込み、複数のCSS定義の結合(ミックスイン)など、CSSにはない機能を利用することができる
と説明されています。
Sassをインストールすることで、Sassファイル(.sass / .scss)をコンパイルしてCSSに変換することができるようになります。またコンパイルする際に複数のSassファイルを結合し、さらに圧縮(ミニファイ化)させることができるようになります。
以下のコマンドでSassをインストールします。(※SassをインストールするにはRubyがインストールされている必要があります。)
今回はタスクランナーの「Grunt」を使ってSassの処理の自動化を行っていきます。Gruntには、SassのコンパイルやCSSファイルの結合、圧縮してくれるプラグインがあります。SassをGruntで扱う方法を以下に紹介します。
WordPressテーマディレクトリにGruntを導入
まずGruntコマンドを使えるようにするために、Grunt-cliをシステムにインストールします。
「Grunt-cli」や「Grunt」をインストールするには、Node.jsとそのパッケージ管理システムのnpmがインストールされている必要があります。詳細は以下を参考にしてください。
また、Gruntのインストールや使い方などは以下を参考にしてください。
Gruntをインストールするための準備として、WordPressのテーマディレクトリに移動し、[npm init]コマンドを実行して、「package.json」ファイルを作成します。
package.jsonファイルを作成したら、Gruntをインストールします。
Gruntのインストールが完了したら、Gruntで実行するタスクを書き込むための「Gruntfile.js」ファイルを作成します。
Sassファイルの準備
次にSassファイルを準備します。Sassファイルには、拡張子が「.sass」と「.scss」の2種類あります。最近ではcssの書き方に近い「.scss」がよく使われるようになってきているので、今回は「.scss」でSassファイルを作ります。
とりあえず、今回は以下の4つのscssファイルを準備しました。最終的にこの4つのファイルをWordpressテーマ用のstyle.cssに結合し、圧縮するようにしていきます。
- style.scss: 全体に共通部分のスタイル
- index.scss: インデックスページのスタイル
- single.scss: 記事ページのスタイル
- sidebar.scss: サイドバーのスタイル
GruntでSassを扱うための準備
Gruntプラグインのインストール
GruntでSassを扱うためのプラグインは以下となります。
- grunt-contrib-sass: Sassをコンパイルするプラグイン
- grunt-contrib-cssmin: CSSファイルを結合、圧縮するプラグイン
- grunt-contrib-watch: ファイル状態を監視するプラグイン
それぞれ以下のコマンドでプラグインをWordPressテーマのフォルダ内にインストールします。
grunt-contrib-sassをインストール
grunt-contrib-cssminをインストール
grunt-contrib-watchをインストール
Gruntfile.jsにタスクを記述
それぞれプラグインのインストールが完了したら、Gruntfile.jsにタスクを記述していきます。
Sassのコンパイル時の変換方法
上記のGruntfile.jsには、Sassのコンパイル時の変換方法がオプションとして設定してあります。grunt-contrib-sassのオプション「style」を指定すると、以下の4つのタイプに変換が可能です。
以下のscssファイルがオプションによってどのように変換されるか例を挙げてみます。
「style: ‘nested’」で変換
「style: ‘compact’」で変換
「style: ‘compressed’」で変換
「style: ‘expanded’」で変換
grunt-contrib-sassのオプションについては以下をご参照ください。
Gruntを実行
以上でWordPressでSassを使う準備は完了です。以下のコマンドでタスクを実行します。
以下のコマンドを叩いてからファイルの更新を行うと、自動的にタスクが実行させるようになります。
Sassファイルが更新される度に、CSSファイルにコンパイルされ、圧縮された形でWordPressテーマ用のCSSファイルであるstyle.cssが生成されるようになります。生成されたstyle.cssは以下のとおりです。ちなみにファイル容量は19KBから12.5KBにまで減量することに成功しています。
まとめ
Sassを使えるようにして、Sassファイルのコンパイル、結合、圧縮などはできるようになりました。次はSassの構文を使ってcssを書いていきたいですね。特にSassを使うとBEMを取り入れたCSSもかなり書きやすくなるということなので、その辺りから挑戦していこうと思っています。
最後に今回参考にしたサイトと、Sassの本を紹介します。
コメント