GULP.JS 
THE STREAMING BUILD SYSTEM 
@revathskumar
OK, I AM DONE CODING & TESTING. WHAT 
NEXT?
DEPLOYMENT?? 
NO 
BUILD IT
WHAT IT MEANS? 
JavaScript/CSS Minification & concatination 
HTML Minification 
Optimize Image 
Preprocess sass 
Transpile coffee 
Assets revving
WHY WE BUILD? 
Productivity 
Performance
HOW WE CAN AUTOMATE BUILD?
NODE.JS BASED TASK RUNNER
WHY GULP? 
Code over Configuration 
Using streams 
Less IO 
Only 4 API methods to learn 
Use standard libraries to do things 
maximum concurrency by default
Image courtesy : @addyosmani
npm install -g gulp
// Gulpfile.js 
var gulp = require('gulp'); 
var clean = require('gulp-clean'); 
gulp.task('clean-dist', function(){ 
return gulp.src('dist/') 
.pipe(clean()); 
});
GULP API
TASK 
gulp.task(name, [dependency], fn); 
register the function with name
WATCH 
gulp.watch(glob, fn); 
runs the function when file changes 
gulp.watch( 
'app/scripts/*.coffee', 
['coffee'] 
);
SRC 
gulp.src(glob); 
return readable stream
DEST 
gulp.dest(folder); 
return writable stream
RUN 
gulp.run(tasks); 
Run the tasks
npm install gulp-clean --save-dev 
npm install gulp-concat --save-dev 
npm install gulp-uglify --save-dev
// Gulpfile.js 
var gulp = require('gulp'); 
var clean = require('gulp-clean'); 
var concat = require('gulp-concat'); 
var uglify = require('gulp-uglify'); 
gulp.task('build', ['clean-dist'], function(){ 
return gulp.src(['app/scripts/*.js']) 
.pipe(concat('all.min.js')) 
.pipe(uglify()) 
.pipe(gulp.dest('dist/scripts')); 
});
ERROR HANDLING 
gulp.task('coffee', function(){ 
return gulp.src('app/scripts/*.coffee') 
.pipe(coffee().on('error', console.log)) 
.pipe(gulp.dest('.tmp/scripts/')); 
});
gulp : 
website : 
plugins : 
Stream : 
https://github.com/wearefractal/gulp 
http://gulpjs.com/ 
http://gulpjs.com/plugins 
https://github.com/substack/stream-handbook/
gulp : 
website : 
plugins : 
Stream : 
https://github.com/wearefractal/gulp 
http://gulpjs.com/ 
http://gulpjs.com/plugins 
https://github.com/substack/stream-handbook/
CONTACT US 
Website : 
Mailing list : 
Twitter : 
Facebook : 
keralajs.org 
bit.ly/kjs-gg 
@keralajs 
bit.ly/kjs-fb 
+Revath S Kumar 
@revathskumar 
http://blog.revathskumar.com/

gulp