様々な作業を自動化するgulpの基礎と導入方法

今回は様々な作業を自動化するビルドシステム「gulp」の基礎と導入方法について書いていきます。
必要な前知識
gulpはNode.jsをベースにしたビルドシステムヘルパー(様々な作業を自動化してくれるツール)です。
「様々な作業って具体的に何してくれるの?」という事ですが、以下のような面倒な事をコマンド1つで出来るようになります。
- Sassのコンパイル
- ファイルの圧縮
- ベンダープリフィックスの自働付与
- 画像の圧縮
必要な知識や、インストールしておくべきものは以下の通りですが、一応初心者の方でも勉強しながら進めていけるように丁寧に書いていくつもりではあります。
- 知識
- 最低限のコマンドライン(ターミナル)の操作
- 最低限のJavaScriptの知識
- インストールしておくべきもの
- Node.js
インストールにはNode.jsが必要になりますので、まだインストールしていない方は過去に記事にしてまとめているので、そちらを参考にしてインストールを行ってください。
また、執筆時点(2019年1月現在)でのgulpのバージョンは4.0.0なので、その前提で進めていきます。
gulpのインストール
インストール前の準備
まずはgulpをインストールしたいディレクトリに移動します。sampleの部分にはディレクトリのパスが入ります。
$ cd sample余談ですが、パスのコピーはFinderで目的のフォルダを右クリック→Optionを押しながら「名前を変更」をクリックするとパス名をコピーできます。

次に下記のコマンドを入力します。名前やバージョン等色々質問されますが、何も入力せずEnterを押していきます。
$ npm init
gulpはNode.jsに付属されているnpmというパッケージマネージャーを使用してインストールするのですが、これはそのnpm設定ファイルを作成するためのコマンドです。
すべて答え終えると、ディレクトリに「package.json」というファイルが作成されていると思います。ちなみに今の質問をすべてスキップしてとりあえずpackage.jsonを作成するnpm init -yというコマンドもあります。
今後は特に自分で記述しない場合はこちらを使うようにしましょう。
gulpのインストール
package.jsonが作成できたら、いよいよgulpのインストールです。
下記のコマンドを入力してgulpをインストールします。「–save-dev」というオプションが付いていますが、これはpackage.jsonのdevDependenciesに追加するための記述です。
$ npm install gulp --save-devコマンドを打つと「node_module」というフォルダと「package-lock.json」というファイルが作成され、中に大量のフォルダが格納されているかと思います。また、package.jsonを見てみると、devDependenciesの中にgulpが記述されています。
現在sampleフォルダには「node_modules」「package-lock.json」「package.json」が入っている状態ですね。

これでgulpのインストールは完了です。
gulpのタスク作成
gulpfile.jsの作成
さて、gulpのインストールは完了しましたが、これだけでは動きません。
次にgulpの設定をしてあげる必要があります。
gulpの設定は全て「gulpfile.js」というファイルに記述していきますので、package.jsonと同じ階層にgulpfile.jsを作成します。
そしてここから先は下記の手順でgulpの設定を行っていきます。
- 行いたいタスクに合ったプラグインのインストール
- gulpfile.jsでプラグインを呼び出しタスクの設定
- gulp(タスク)の実行
今回は「Sassをコンパイルする」というタスクを設定してみましょう。
プラグインのインストール
Sassをコンパイルするには「gulp-sass」というプラグインが使えますので、下記コマンドでインストールしましょう。
$ npm install gulp-sass --save-devgulpfile.jsでタスクの設定
プラグインのインストールが出来たら、gulpfile.jsにプラグインを呼び出し、タスクの設定を行います。
gulpfile.jsconst gulp = require("gulp");
const sass = require("gulp-sass");
gulp.task("default",function(){
gulp.src("scss/*.scss")
.pipe(sass({outputStyle: 'expanded'}))
.pipe(gulp.dest("./css"))
})コードの解説を行うと、それぞれ下記のようになります。
const 定数名 = require(“プラグイン名”);でgulpやプラグインの呼び出して定数に代入しています。
gulp.task(“タスク名”,function(){タスクの内容})でタスクの登録が可能です。
ちなみにタスク名を「default」にしておくと、デフォルトのタスクとして登録され、タスク名を指定しなくてもgulpの実行してくれるようになります。
gulp.src(“呼び出すファイルパス”)で呼び出すファイルを設定します。今回はscssフォルダに入っている.scssファイルをコンパイルします。
後は見慣れない「.pipe」ですが、これは複数の処理を連結させる役割があります。
gulpの実行
さて、設定が出来たのでgulpを実行してみましょう。
まずはコンパイルするのに必要な「scss」フォルダと、その中に「style.scss」を用意します。
あとはターミナルで下記コマンドを実行します。
npx gulpnpxはnpm v5.2から使えるコマンドで、簡単にnpmパッケージの実行が出来るコマンドです(古いnode.jsでは動かないので最新のバージョンにしておきましょう)。
実行してコンパイルが完了したら「css」フォルダと、その中にコンパイルされた「style.css」が生成されているはずです。


アクセス解析ツールの定番!!Googleアナリティクスの登録方法
Visual Studio Codeでできる最低限のGit操作方法
JavaScriptで日付をコピーして計算すると、コピー元の日付も変わってしまう場合の対処法
効率的なマークアップが出来るようになるEmmetでHTMLを書く時の基本
Visual Studio Codeで正規表現にマッチするか確認できる拡張機能「Regex Previewer」
WordPressのデータを取得できるWP REST APIの使い方
gulp-sass 5の「does not have a default Sass compiler」エラーを解消する
iOSシミュレーターを使ってWebサイトを開発者ツールを見ながら実機表示で開発する方法
gitignoreで特定ファイルをGitで無視する方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Orbital 2と修飾キーの同時押しで、別のショートカットキーを発火させる方法
効率的にHTMLを生成できるPugの特徴や記述方法
Fantastical 3がサブスクリプションモデルになりUIが刷新!予定の管理がさらに便利になる機能が追加
Homebrew Caskを使ってアプリケーションをコマンド一発でインストールできるようにする
MacDownでシンタックスハイライト機能を使う方法と設定
技術的な文章を書く時の自分ルール
Vue CLIでGA4を導入する方法
Biscuitで普段はブラウザでリンクを開きつつ、ダウンロードリンクはBiscuitで開く方法
Path Finderでのカラム表示とリスト表示の切り替え
Figmaのスタイル入門|何度も使い回す色や文字設定を管理する方法