一気一気-かの一般的なプラグインを使用

:もっとしてください訪問使用する一般的なプラグインを飲み込むゴクゴク普通のプラグイン概要を


飲み込む-あれば、これは条件付きのプラグインです。

注:gulp-if一緒に使用する場合、プラグをアンダーパフォームすることは、通常は悪くなります。一般的には、修正しないgulp-ifで。
注:lazypipe良い結果で使用した場合、以下を参照してください

文書のグレーターの使用、訪問ゴクゴク-かのツール公式サイトをクリックしてください

インストール

キーのインストール多くの説明

npm install --save-dev gulp-if

使用

/**
*   @param condition {Boolen}   判断条件或glob条件
*   @param stream               condition为true时,执行的任务
*   @param elseStream           condition为false时,执行的任务
*   @param minimatchOptions     如果是GLUB条件,这些选项被传递给minimatch
*/
gulpif(condition, stream [, elseStream, [, minimatchOptions]])

1:条件付きコンテンツフィルタリング

var gulpif = require('gulp-if');
var uglify = require('gulp-uglify');

var condition = true; // TODO: add business logic

gulp.task('task', function() {
  gulp.src('./src/*.js')
    .pipe(gulpif(condition, uglify()))
    .pipe(gulp.dest('./dist/'));
});

条件が真の場合、圧縮されたコンテンツは、フォルダDISTにすべてのファイルを送信します

2:3元フィルタ

var gulpif = require('gulp-if');
var uglify = require('gulp-uglify');
var beautify = require('gulp-beautify');

var condition = function (file) {
  // TODO: 添加业务逻辑
  return true;
}

gulp.task('task', function() {
  gulp.src('./src/*.js')
    .pipe(gulpif(condition, uglify(), beautify()))
    .pipe(gulp.dest('./dist/'));
});

条件がtrueを返す場合、圧縮その他のオブジェクトは、美化し、そのフォルダのdistのにすべてを送っします

3:ストリームからコンテンツを削除します

var gulpIgnore = require('gulp-ignore');
var uglify = require('gulp-uglify');
var jshint = require('gulp-jshint');

var condition = './gulpfile.js';

gulp.task('task', function() {
  gulp.src('./*.js')
    .pipe(jshint())
    .pipe(gulpIgnore.exclude(condition))
    .pipe(uglify())
    .pipe(gulp.dest('./dist/'));
});

すべてのコンテンツが実行されJSHint、ストリームから除去gulpfileした後、中傷や他のすべての書かれた内容。

4:ストリームから物事を除外

var uglify = require('gulp-uglify');

gulp.task('task', function() {
  gulp.src(['./*.js', '!./node_modules/**'])
    .pipe(uglify())
    .pipe(gulp.dest('./dist/'));
});

すべてのクロールではないnode_modules、フォルダ内にその処理をJavaScriptファイルをして中傷するために書かれ。これは、最速でnode_modules何に残さgulp.src()

**とlazypipe**良い結果で使用される
Lazypipeパイプのチェーンを使用したときに初期化された関数を作成します。これはであなたを可能にするgulp-if条件内の一連のイベントを作成します。ときにのみlintingフラグがあるtrueとき、このプログラムが実行されjshint、分析および報告手続きを。

var gulpif = require('gulp-if');
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var lazypipe = require('lazypipe');

var linting = false;
var compressing = false;

var jshintChannel = lazypipe()
  // 添加管道步骤 
  .pipe(jshint) // 注意流函数尚未被调用!
  .pipe(jshint.reporter)
  // 添加具有自变量的步骤 
  .pipe(jshint.reporter, 'fail');

gulp.task('scripts', function () {
  return gulp.src(paths.scripts.src)
    .pipe(gulpif(linting, jshintChannel()))
    .pipe(gulpif(compressing, uglify()))
    .pipe(gulp.dest(paths.scripts.dest));
});

** lazypipe内部で良好な効果が
Lazypipeそれぞれ必要に応じてすべての関数パラメータは、静的であると仮定lazypipe内部のインスタンスgulp-ifパラメータ、比較グッ。この差は容易に不活性導管工程において伝達関数によって解決することができます

var gulpif = require('gulp-if');
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var lazypipe = require('lazypipe');

var compressing = false;

var jsChannel = lazypipe()
  // 添加管道步骤 
  .pipe(jshint) // 注意流函数尚未被调用!
  .pipe(jshint.reporter)
  // 添加具有自变量的步骤 
  .pipe(jshint.reporter, 'fail')
  // 你不能说 .pipe(gulpif, compressing, uglify)
  // 因为丑化需要在每个lazypipe情况下单独实例化
  // 您可以这样说:
  .pipe(function () {
    return gulpif(compressing, uglify());
  });
  // 为什么这样做有效?lazypipe调用该函数,并传入no参数,,
  // 实例化一个新的gulp-if管道,并将其返回给lazypipe。

gulp.task('scripts', function () {
  return gulp.src(paths.scripts.src)
    .pipe(jsChannel())
    .pipe(gulp.dest(paths.scripts.dest));
});

API
gulpif(condition, stream [, elseStream, [, minimatchOptions]])

gulp-ifそれはへのパイプラインを介してデータ転送を送るstream任意のcondition実際の状況。
場合conditionであるfalseelseStream伝達され、データは、導管を介して転送されるelseStream
データを介して移送導管streamまたはelseStream後、またはどちらも、パイプラインを介したデータ転送にstream

  • condition
    入力:booleanまたはstatオブジェクト、またはfunction必要vinylファイルと戻りブール値かRegularExpressionfile.path
    conditionれる引数をgulp-match任意の条件でサポートされています。file.path転送gulp-match
    与えられた関数の場合、関数はビニールを渡されますfileこの関数は返す必要がありますboolean
  • stream
    gulp-ifストリーム、真の導管を通じて伝送されるデータを調整します。
  • elseStream
    あるいは、場合条件falseと、のためのgulp-if提供されたデータ・ストリームの送信。
  • minimatchOptions
    また、世界的な条件ならば、これらのオプションはに渡されますminimatch

おすすめ

転載: www.cnblogs.com/jiaoshou/p/12185096.html