gulp-pleeeaseでcssのminify・autoprefix・mqpackをまとめて実行しよう【gulp4】

html/css
この記事は約10分で読めます。
スポンサーリンク

はじめに

今回はgulp-pleeeaseを使ってcssの圧縮やベンダープレフィックスの付与、メディアクエリをまとめる処理を実行する方法について説明していきます。

ちょっと変わった名称ですが、gulp-pleeeaseというプラグインで合ってます。(読み方は分かりません・・・)

豊富なオプションにより今まで複数のプラグインを使って処理していたことがgulp-pleeeaseだけで実現できるようになります。

対象者
  • いろんなプラグインを使ってcssの処理をしている方
  • 使用するプラグインをなるべく少なくしたい方

その他gulpのおすすめのプラグインはこちら

gulpの使い方まとめについてはこちら。

gulpfile.jsのテンプレート紹介についてはこちら。

それではgulp-pleeeaseの説明に移ります。

スポンサーリンク

gulp-pleeeaseのメリット

冒頭でも記載しましたが、gulp-pleeeaseを使うメリットは複数のプラグインを使って処理していたことが1つのプラグインだけで実現できることです。

通常cssの圧縮、ベンダープレフィックスの自動付与、メディアクエリをまとめる処理をする場合はそれぞれ以下のプラグインを使用するかと思います。

プラグイン名内容
gulp-clean-csscssの圧縮をする
gulp-autoprefixerベンダープレフィックスの自動付与をする
gulp-group-css-media-queriesメディアクエリをまとめる

これらがgulp-pleeeaseのプラグイン1つで同様の処理ができてしまいます。

今回は以下2つのプラグインを使ってgulp-pleeeaseの説明をしていきます。

プラグイン名内容
gulp-pleeeasecssの圧縮、ベンダープレフィックス付与、メディアクエリをまとめる
gulp-plumberwatch中にエラーが発生してもwatchが止まらないようにする
スポンサーリンク

ディレクトリ構成

今回のディレクトリ構成は下記になります。

test
├ node_modules
├ src
│ ├ css
│ └ sass
│   └ style.scss
├ gulpfile.js
├ package-lock.json
└ package.json

scssファイルをコンパイルしてcssフォルダに出力させます。

コンパイル後にcssファイルにgulp-pleeeaseの処理を実行させていきましょう。

スポンサーリンク

プラグインをインストールしよう

それではgulpのプラグインをインストールしていきましょう。

npm i -D gulp-pleeease

下記コマンドをターミナルで実行してgulp-pleeeaseをインストールします。

npm i -D gulp-pleeease

gulp-pleeease公式

npm i -D gulp-plumber

こちらも同様にインストールします。

npm i -D gulp-plumber

gulp-plumber 公式

スポンサーリンク

gulpfile.jsを編集しよう

プラグインのインストールが完了したらgulpfile.jsを編集していきましょう。

//----------------------------------------------------------------------
//  モード
//----------------------------------------------------------------------
"use strict";

//----------------------------------------------------------------------
//  モジュール読み込み
//----------------------------------------------------------------------
const gulp = require("gulp");
const { src, dest, watch, series, parallel } = require("gulp");

const pleeease = require("gulp-pleeease");
const plumber = require("gulp-plumber");

const sass = require("gulp-dart-sass");

//----------------------------------------------------------------------
//  関数定義
//----------------------------------------------------------------------
function compile(done) {
  src("./src/sass/**/*.scss")
    .pipe(plumber())                // watch中にエラーが発生してもwatchが止まらないようにする
    .pipe(sass())
    .pipe(pleeease({
      autoprefixer:{                // ベンダープレフィックスの自動付与
        browsers:[                  // 対象ブラウザの指定
          "last 2 versions",
          "ie >= 11",
          "Android >= 4"
        ],
      },
      mqpacker: true,               // メディアクエリをまとめる
      minifier: true,               // cssの圧縮をする
    }))
    .pipe(dest("./src/css"));

  done();
}

//----------------------------------------------------------------------
//  タスク定義
//----------------------------------------------------------------------
exports.compile = series(compile);

/************************************************************************/
/*  END OF FILE                                                         */
/************************************************************************/

今回使用しているオプションは以下になります。

オプション名内容
autoprefixerベンダープレフィックスの自動付与
browsers対象ブラウザの指定
mqpackerメディアクエリをまとめる
minifiercssの圧縮をする

上記以外にも指定できるオプションはたくさんありますのでご自身で確認してみてくださいね。

別途sassのコンパイルをするプラグインをインストールさせています。

本記事の説明から外れますのでこちらを参照してください。

スポンサーリンク

style.scssを編集しよう

gulp-pleeeaseが実行されるとどのようになるのかを見るためにサンプルコードを載せておきます。

style.scss

@charset "utf-8";

@media (min-width: 961px) {
  .header {
    background-color: red;
    transform: scale(2);
    transition: all 0.25s;
  }
}

@media (min-width: 961px) {
  .footer {
    display: flex;
  }
}
スポンサーリンク

コマンドを実行しよう

編集が完了したらターミナルからコマンドを実行しましょう。

npx gulp compile

「npx」のコマンド使用時にエラーが出る方はこちらを参照してください。

gulpのインストール先が異なる可能性があります。

以下のようになれば正しく実行できています。

[00:00:00] Starting 'compile'...
[00:00:00] Starting 'compile'...
[00:00:00] Finished 'compile' after 11 ms
[00:00:00] Finished 'compile' after 14 ms
スポンサーリンク

実行後のファイルを確認しよう

実行後のファイルはcssフォルダに作成されているはずです。

test
├ node_modules
├ src
│ ├ css
│ │ └ style.css      // 実行後のファイル
│ └ sass
│   └ style.scss
├ gulpfile.js
├ package-lock.json
└ package.json

それでは実行後のファイルを確認してみましょう。

style.css(実行前)

@charset "utf-8";

@media (min-width: 961px) {
  .header {
    background-color: red;
    transform: scale(2);
    transition: all 0.25s;
  }
}

@media (min-width: 961px) {
  .footer {
    display: flex;
  }
}

style.css(実行後)

@media(min-width:961px){.header{background-color:red;-webkit-transform:scale(2);transform:scale(2);-webkit-transition:all .25s;transition:all .25s}.footer{display:-webkit-box;display:-ms-flexbox;display:flex}}

圧縮未実施の場合は以下のようになります。

style.css(圧縮未実施の場合)

@media (min-width: 961px) {
  .header {
    background-color: red;
    -webkit-transform: scale(2);
            transform: scale(2);
    -webkit-transition: all 0.25s;
    transition: all 0.25s
  }
  .footer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex
  }
}
スポンサーリンク

おわりに

gulp-pleeeaseを使ってcssの圧縮やベンダープレフィックスの付与、メディアクエリをまとめる処理を実行する方法について説明していきました。

いかがだったでしょうか。

複数のプラグインを使ってcssの処理している方はgulp-pleeeaseの導入をぜひ検討してみてください。

コメント

タイトルとURLをコピーしました