:もっとしてください訪問使用する一般的なプラグインを飲み込むゴクゴク普通のプラグイン概要を
飲み込む-あれば、これは条件付きのプラグインです。
注:と
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
であるfalse
とelseStream
伝達され、データは、導管を介して転送されるelseStream
データを介して移送導管stream
またはelseStream
後、またはどちらも、パイプラインを介したデータ転送にstream
。
condition
入力:boolean
またはstat
オブジェクト、またはfunction
必要vinyl
ファイルと戻りブール値かRegularExpression
月file.path
condition
れる引数をgulp-match
任意の条件でサポートされています。file.path
転送gulp-match
。
与えられた関数の場合、関数はビニールを渡されますfile
。この関数は返す必要がありますboolean
。stream
gulp-if
ストリーム、真の導管を通じて伝送されるデータを調整します。elseStream
あるいは、場合条件false
と、のためのgulp-if
提供されたデータ・ストリームの送信。minimatchOptions
また、世界的な条件ならば、これらのオプションはに渡されますminimatch
。