A plugin for Gulp, allows conditional task, with "if" callback and "else" callback (optional).
npm install gulp-if-else
ifElse(condition, ifCallback [, elseCallback])
var ifElse = require('gulp-if-else');
// your code ...
gulp.src(source)
.pipe( ifElse(condition, ifCallback, elseCallback) )
Works as a basic condition.
To understand the logic, ifElse
is equivalent to
if(condition) {
// condition is truthy
return ifCallback();
}else{
// condition is falsy
// if "elseCallback" is provided
if(elseCallback) {
return elseCallback();
}
// if not "elseCallback" returns the stream
return stream;
}
Examples
gulp.task('css', function() {
gulp.src('./public/css/*.css')
.pipe(ifElse(process.env.NODE_ENV === 'production',
// called if "NODE_ENV" is "production"
minifyCSS,
// called if "NODE_ENV" is "not" "production" (else)
function() {
return minifyCSS({debug: true});
}))
.pipe(gulp.dest('./dist/css'))
});
gulp.task('js', function() {
var isDev = process.env.NODE_ENV === 'development';
gulp.src('./public/js/app.js')
.pipe(browserify())
// here, "uglify" (function) is called only if "isDev" is "true"
.pipe(ifElse(isDev, uglify))
.pipe(gulp.dest('./dist/js'))
});
gulp-if-else
is unit tested with Unit.js
Run the tests
cd node_modules/gulp-if-else
npm test
Nicolas Talle |