gulp-if-else
Version:
[Gulp plugin] Conditional task with "if" callback and "else" callback (optional): gulp.src(source).pipe( ifElse(condition, ifCallback, elseCallback) )
114 lines (72 loc) • 2.48 kB
Markdown
# gulp-if-else
[](https://www.npmjs.org/package/gulp-if-else)
[](https://david-dm.org/Nicolab/gulp-if-else)
[](https://www.npmjs.org/package/gulp-if-else)
A plugin for Gulp, allows conditional task, with "if" callback and "else" callback (optional).
## Install
```shell
npm install gulp-if-else
```
## Usage
ifElse(condition, ifCallback [, elseCallback])
```js
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
```js
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
```js
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'))
});
```
## Unit tests
`gulp-if-else` is unit tested with [Unit.js](http://unitjs.com)
Run the tests
```shell
cd node_modules/gulp-if-else
npm test
```
## Other conditional plugins for Gulp
* [gulp-if](https://github.com/robrich/gulp-if)
* [gulp-cond](https://github.com/nfroidure/gulp-cond)
## LICENSE
[MIT license](https://github.com/Nicolab/gulp-if-else/blob/master/LICENSE)
## Author
| [](http://nicolab.net) |
|---|
| [Nicolas Talle](http://nicolab.net) |
| [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PGRH4ZXP36GUC) |