Slide 1

Slide 1 text

GULP.JS THE STREAMING BUILD SYSTEM @revathskumar

Slide 2

Slide 2 text

OK, I AM DONE CODING & TESTING. WHAT NEXT?

Slide 3

Slide 3 text

DEPLOYMENT?? NO BUILD IT

Slide 4

Slide 4 text

WHAT IT MEANS? JavaScript/CSS Minification & concatination HTML Minification Optimize Image Preprocess sass Transpile coffee Assets revving

Slide 5

Slide 5 text

WHY WE BUILD? Productivity Performance

Slide 6

Slide 6 text

HOW WE CAN AUTOMATE BUILD?

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

NODE.JS BASED TASK RUNNER

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Image courtesy : @addyosmani

Slide 12

Slide 12 text

n p m i n s t a l l - g g u l p

Slide 13

Slide 13 text

/ / G u l p f i l e . j s v a r g u l p = r e q u i r e ( ' g u l p ' ) ; v a r c l e a n = r e q u i r e ( ' g u l p - c l e a n ' ) ; g u l p . t a s k ( ' c l e a n - d i s t ' , f u n c t i o n ( ) { r e t u r n g u l p . s r c ( ' d i s t / ' ) . p i p e ( c l e a n ( ) ) ; } ) ;

Slide 14

Slide 14 text

GULP API

Slide 15

Slide 15 text

TASK g u l p . t a s k ( n a m e , [ d e p e n d e n c y ] , f n ) ; register the function with name

Slide 16

Slide 16 text

WATCH g u l p . w a t c h ( g l o b , f n ) ; runs the function when file changes g u l p . w a t c h ( ' a p p / s c r i p t s / * . c o f f e e ' , [ ' c o f f e e ' ] ) ;

Slide 17

Slide 17 text

SRC g u l p . s r c ( g l o b ) ; return readable stream

Slide 18

Slide 18 text

DEST g u l p . d e s t ( f o l d e r ) ; return writable stream

Slide 19

Slide 19 text

RUN g u l p . r u n ( t a s k s ) ; Run the tasks

Slide 20

Slide 20 text

n p m i n s t a l l g u l p - c l e a n - - s a v e - d e v n p m i n s t a l l g u l p - c o n c a t - - s a v e - d e v n p m i n s t a l l g u l p - u g l i f y - - s a v e - d e v

Slide 21

Slide 21 text

/ / G u l p f i l e . j s v a r g u l p = r e q u i r e ( ' g u l p ' ) ; v a r c l e a n = r e q u i r e ( ' g u l p - c l e a n ' ) ; v a r c o n c a t = r e q u i r e ( ' g u l p - c o n c a t ' ) ; v a r u g l i f y = r e q u i r e ( ' g u l p - u g l i f y ' ) ; g u l p . t a s k ( ' b u i l d ' , [ ' c l e a n - d i s t ' ] , f u n c t i o n ( ) { r e t u r n g u l p . s r c ( [ ' a p p / s c r i p t s / * . j s ' ] ) . p i p e ( c o n c a t ( ' a l l . m i n . j s ' ) ) . p i p e ( u g l i f y ( ) ) . p i p e ( g u l p . d e s t ( ' d i s t / s c r i p t s ' ) ) ; } ) ;

Slide 22

Slide 22 text

ERROR HANDLING g u l p . t a s k ( ' c o f f e e ' , f u n c t i o n ( ) { r e t u r n g u l p . s r c ( ' a p p / s c r i p t s / * . c o f f e e ' ) . p i p e ( c o f f e e ( ) . o n ( ' e r r o r ' , c o n s o l e . l o g ) ) . p i p e ( g u l p . d e s t ( ' . t m p / s c r i p t s / ' ) ) ; } ) ;

Slide 23

Slide 23 text

gulp : website : plugins : Stream : https://github.com/wearefractal/gulp http://gulpjs.com/ http://gulpjs.com/plugins https://github.com/substack/stream-handbook/

Slide 24

Slide 24 text

gulp : website : plugins : Stream : https://github.com/wearefractal/gulp http://gulpjs.com/ http://gulpjs.com/plugins https://github.com/substack/stream-handbook/

Slide 25

Slide 25 text

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/