gulpはプラグインを使うことで様々なタスクを作ることができますが、その分プラグインを読み込むために沢山のrequire()を記述していく必要があります。
タスクファイルを分割している場合はあまり気にならないかもしれませんが、gulpfile.jsのみ使用していて長くなってしまうのが嫌だとか単純に何度もrequire()を記述するのが面倒だというときは、「gulp-load-plugins」というプラグインを利用することでプラグインの読み込みを簡素化することができます。

プラグインのインストール

「gulp」は既にインストール済みという想定で、まずは下記をコマンドに入力して「gulp-load-plugins」プラグインをインストールします。

$ npm i -D gulp-load-plugins

タスクの記述

次に実際にタスクに記述していきますが、今回はサンプルとして下記のようなCSS関連のタスクが記述されているgulpfile.jsを用意し、ここに「gulp-load-plugins」を使ってみる形で紹介していきます。

gulpfile.js
var gulp = require( 'gulp' ),
    autoprefixer = require( 'autoprefixer' ),
    sass = require( 'gulp-sass' ),
    postcss  = require( 'gulp-postcss' ),
    plumber = require( 'gulp-plumber' ),
    notify = require( 'gulp-notify' );

gulp.task('css', function() {
  return gulp.src('./src/scss/**/*.scss')
    .pipe(plumber({errorHandler:notify.onError('Error: <%= error.message %>')}))
    .pipe(sass())
    .pipe(postcss([ autoprefixer() ]))
    .pipe(gulp.dest('./public/css/'));
});

上記コードを見るとsass = require( 'gulp-sass' )plumber = require( 'gulp-plumber' )のように、複数のプラグインを読み込むためにrequire()がいくつか記述されているのがわかりますが、ここに「gulp-load-plugins」を使うことで記述を簡素化することができます。

実際に使ったのが下記コードで、ハイライトで表示している部分が先ほどとの変更箇所となります。

gulpfile.js
var gulp = require( 'gulp' ),
    autoprefixer = require( 'autoprefixer' ),
    plugins = require('gulp-load-plugins')();
gulp.task('css', function() {
  return gulp.src('./src/scss/**/*.scss')
      .pipe(plugins.plumber({errorHandler:plugins.notify.onError('Error: <%= error.message %>')}))      .pipe(plugins.sass())      .pipe(plugins.postcss([ autoprefixer() ]))      .pipe(gulp.dest('./public/css/'));
});

上記のように「gulp-load-plugins」を使うことでもともと4行分記述していたrequire()plugins = require('gulp-load-plugins')()という1行のみの記述でよくなり、これでパッと見は読み込みの記述がされていない「gulp-sass」「gulp-postcss」「gulp-plumber」「gulp-notify」の4つのプラグインを実は読み込んでいます。

自動で読み込まれるのはpackage.jsonに書かれた「gulp-」や「gulp.」から始まるプラグインとなるので、例えば今回のサンプルで使用している「autoprefixer」に関しては対象外となるためいつも通り読み込む必要があります。
また、サンプルコードでは変数をpluginsとしていますがこれは自分がわかりやすい任意のものに変更可能で、その際はタスク内に記述している各変数の記述も変更してください。

ここで紹介したサンプルだともともとが4つと少ないのでそこまでスッキリした感はありませんが、ひとつのファイルにズラッとタスクを記述していて10個以上のプラグインを読み込んでいる状態とかで試しに使ってみるとかなりスッキリさせることができると思います。
また、「gulp-」や「gulp.」から始まるプラグインだけですが、毎回require()を書くのが面倒だという人にもおすすめです。

プラグインの詳細などについては、以下で確認できます。