読者です 読者をやめる 読者になる 読者になる

無駄と文化

実用的ブログ

普通のWebデザイナーがSass+gulp.jsでいい感じのコーディング環境を手に入れるまで ~後編~

Sass CSS gulp.js

という訳でgulp.jsを使ってのSass導入後篇です。

前編はこちらです、
普通のWebデザイナーがSass+gulp.jsでいい感じのコーディング環境を手に入れるまで ~前編~ - 無駄と文化

前回までで、諸々の環境構築とtasksリポジトリをPCのローカルに持ってくるところまでが済んでいると思います。
ここまでくればgulpタスクを実際に実行するところまでもう少しです。


gulpfile.jspackage.jsonを移動させる

さて、今回のテーマはWebデザイナーのためのgulp.jsとSass導入ですよね。

普通、Web制作の会社に勤めるデザイナーは日々複数の案件にたずさわっているんではないでしょうか。
三井が用意したgulpタスクは、そのように複数案件にまたがって使う事を想定しています。


gulpfile.jsの配置などにも若干のコツがあります。
以下を参考にしながらtasksディレクトリの配置とgulpfile.js, package.jsonの移動をしてください。

例えば、進行中の3つの案件(A案件, B案件, C案件)のディレクトリがprojectsというディレクトリの中にまとめられている場合...

projects
 ├─ project_A
 │   ├─ sass
 │   ├─ css
 │   └─ index.html
 │
 ├─ project_B
 │   ├─ sass
 │   ├─ css
 │   └─ index.html
 │
 └─ test
     └─ project_C
        ├─ css
        ├─ sass
        └─ index.html

まず、tasksディレクトリを置く場所はprojectsディレクトリの直下にしてください。

projects
 ├─ project_A
 │   ├─ sass
 │   ├─ css
 │   └─ index.html
 │
 ├─ project_B
 │   ├─ sass
 │   ├─ css
 │   └─ index.html
 │
 ├─ test
 │   └─ project_C
 │      ├─ css
 │      ├─ sass
 │      └─ index.html
 │
 └─ tasks  <- cloneしたtasksディレクトリをこの位置に配置
     ├─ .csscomb.json
     ├─ config.js
     ├─ gulpfile-coffee.js
     ├─ gulpfile-default.js
     ├─ gulpfile-develop.js
     ├─ gulpfile-preview.js
     ├─ gulpfile-sass.js
     ├─ gulpfile.js
     └─ package.json

そしてtasksディレクトリの中のgulpfile.jspackage.jsonだけを一階層上に移動します。

projects
 ├─ project_A
 │   ├─ sass
 │   ├─ css
 │   └─ index.html
 │
 ├─ project_B
 │   ├─ sass
 │   ├─ css
 │   └─ index.html
 │
 ├─ test
 │   └─ project_C
 │      ├─ css
 │      ├─ sass
 │      └─ index.html
 │
 ├─ tasks
 │   ├─ .csscomb.json
 │   ├─ config.js
 │   ├─ gulpfile-coffee.js
 │   ├─ gulpfile-default.js
 │   ├─ gulpfile-develop.js
 │   ├─ gulpfile-preview.js
 │   └─ gulpfile-sass.js
 │
 ├─ gulpfile.js   <- この2つのファイルをtasksディレクトリから出して
 └─ package.json  <- この位置に配置する

と、これにてファイルの配置はOKです。


タスク実行に必要なパッケージのインストール

『またインストールか...』と思うかも知れませんが、前回パッケージマネージャーを導入しているのでコマンド一つで済みます。
必要なパッケージのリストはpackage.jsonの中に記述しておきました。

コマンドラインを開いてpackage.jsonのある階層に行きましょう。

npm install

Windowsの場合、コマンドプロンプトを管理者として実行しなければいけないかも知れません。

しばらく待つと必要なパッケージが全てインストールされ、セットアップまでされて使える状態になります。

この後いよいよ初めてのgulp.js実行です。


各プロジェクトディレクトリでgulp.jsを走らせる

ついに全ての下準備が完了しました。
プロジェクトのディレクトリに移動してSassのコンパイルを試して見ましょう。

Sassコンパイルのためにはsass-compileタスクを実行します。

gulp sass-compile

このコマンド一つで

  • Sassのコンパイル
  • CSSプロパティを良い感じに並べ替えて整形する
  • 必要なprefixを付けて、不要なprefixは外す
  • remのフォールバック

などの処理を一括で行ってくれます。


ちなみに、対象になるファイルは./sass/ディレクトリに入っている.sassファイルと.scssファイルのみです。
コンパイルした結果は./css/ディレクトリに入ります。


ファイルの変更監視と自動コンパイル

sass-compileタスクはいろいろな処理を一括で実行してくれて便利ではあるんですが、元のSassファイルを更新する度にタスクを実行するのが面倒でもあります。

そこで./sass/ディレクトリを監視して、ファイルに変更がある度に自動でコンパイルを実行するタスクを用意しておきました。
それがsassタスクです。

gulp sass

このタスクを実行すると、gulpが./sass/ディレクトリの中のファイルを監視してくれます。
試しに適当な.scssファイルを変更して上書き保存すれば、その度にコンパイルが行われて./css/ディレクトリに最新のファイルが入っているのが分かるでしょう。


そんな訳で、今後Sassを使ってコーディングをするときには、コマンドラインで目的のプロジェクトディレクトリに移動してgulp sassするだけでOKという事になりました。めでたい。

あとは思う存分 デザインとコーディングに集中してください。


おまけタスクたち

その他にも三井が個人的によく使うタスクを良い感じに突っ込んどきました。

以下のようなタスクがあるみたいです。

CoffeeScriptのコンパイル

1回限りのコンパイルなら

gulp coffee-compile

ディレクトリを監視しながらの自動コンパイルなら

gulp coffee

を実行してください。

./coffee/ディレクトリの中の.coffeeを対象にします。コンパイル後の.jsファイルが入るのは./js/フォルダです。


Sass & CoffeeScript

SassとCoffeeScriptを平行して編集するときのためにgulp sassgulp coffeeを合わせたタスクを用意しています。
デフォルトタスクにしてあるので、

gulp

これだけで実行されます。便利ですね。

SassとCoffeeScriptのどちらか一方しか書かない場合もこのコマンド走らせときゃいいかな、って思わなくもないです。大は小を兼ねますからね。


Local Server

PHPにはビルトインウェブサーバーを立ち上げる便利機能が備わっています。
それをわざわざgulpタスクにしたのが

gulp preview

です。

実行するとカレントディレクトリをDocument Rootにしてローカルウェブサーバーが立ち上がります。
ブラウザでhttp://localhost/にアクセスすればローカルファイルがプレビューできるはずです。

.phpファイルがPHPとして実行されますし、本番環境とローカルでのルート相対パスの違いなどを気にしなくても良くなるので良い感じですね。

注意

環境に応じてPHPの実行ファイルとphp.iniの場所を指定する必要があります。 tasks/config.jsにオブジェクト形式で絶対パスを記述します。
Windows用,Mac用それぞれのサンプルとしてconfig.js.win-sampleconfig.js.mac-sampleを用意しているので適宜 拡張子を変更して使用してください。

また、Apacheが立ち上がっている訳ではないので、mod_rewrite等Apache固有の機能は利用できません。
.htaccessでPHPの設定を変更しているものについても反映されません。PHPの設定はphp.iniにあらかじめ記述しておく必要があります。


全部盛り

gulp previewgulp sass, gulp coffeeを合わせたタスクです。全部盛りです。

gulp develop

./sass/ディレクトリと./coffee/ディレクトリの中を監視してSassコンパイルとCoffeeScriptコンパイルを断続的に行いつつ、ローカルサーバーでプレビューします。


まとめ

これにてようやく、gulp.jsとSassの導入が完了です。 環境構築とセットアップさえしてしまえば『何も考えなけくていいから、とりあえずgulp sassして』と伝えるだけでいいんですね。

これでもだいぶ簡単にしたんですが、まだまだ環境構築が手間ですね。申し訳ない。
楽するのも楽じゃないですよ、まったく。


私からは以上です。


前編はこちら、
普通のWebデザイナーがSass+gulp.jsでいい感じのコーディング環境を手に入れるまで ~前編~ - 無駄と文化

tasksリポジトリはこちら、
todays-mitsui/tasks · GitHub