上からマリコ、いまさらGulp(1)

静的サイトジェネレーターもいいが、
やはりタスクランナーのほうが今回の案件にマッチしそうだったので、 しぶしぶ、いまさらGulpについて調べてみました。

Gulp.jsとは?

Node.jsのStreamAPIを利用したビルドシステム。 ローカル環境で動くサーバーサイドJavascript環境(Node.js)のStreamAPIを利用してビルドする。

なにができるのか?

・JSの圧縮
・SASSのコンパイル
・ファイルの監視/自動化
・ライブリロード
など

Node.jsのインストール

Node.jsを利用したビルドシステムのため、当然Node.jsをインストールする必要がある。
https://nodejs.org/en/

package.jsonを作成する

package.jsonはprojectのpackageを管理するためのファイル。
CocoapodでいうところのPodfile的なものだと解釈しています。

作り方は2通りあって、ひとつ目は自分でこつこつ書くこと。 ふたつ目はプロジェクトのディレクトリまで移動して以下のコマンドを叩くことです。

npm init

このコマンドを叩くと、対話形式でpackage.jsonが生成されます。
ここもCocoapodと大差無いですね。

gulpをインストールする

gulpのインストールは通常、ローカルとグローバルの両方にインストールする必要がある。
グローバルにインストールされたgulpは、ローカルにインストールしたgulpを実行するのが役割です。

グローバルな場所にgulpをインストールします。(グローバルインストール)

npm install -g gulp

プロジェクトのフォルダに移動し、gulpをインストールします(ローカルインストール)

npm install -D gulp

するとプロジェクトの内部に、node_modulesというフォルダが現れています。
そして、package.jsonには以下のフィールドが追加されました。

"devDependencies": {
    "gulp": "^3.9.1"
}

.gitignoreを設定しよう(任意)

package.jsonのある場所まで移動して、ターミナルにて"npm install" を叩けば、
"devDependencies"や"Dependencies"に記述されているパッケージがインストールされ、
パッケージ群(node_module)が生成されます。 そのためgitで管理する場合、node_module以下はコミットする必要がないと考えてもいいと思います。

//.gitignore

node_modules

タスクを走らせてみよう

さあここまできたら、やっとタスクが走らせられる。

gulpfile.jsを作ろう

プロジェクトのルート階層にgulpfile.jsを作成します。
このファイルの中にタスクの中身を書いていきます。

Run!Run!Run!

ターミナルで以下を叩きましょう

gulp

これでやっと僕もガルパー(gulper)です。そんな言葉はあるのかな。