Gulp: Task Runner

32
Gulp : Task Runner For Node Fundamentals @ BCIT

Transcript of Gulp: Task Runner

Page 1: Gulp: Task Runner

Gulp : Task Runner

For Node Fundamentals @ BCIT

Page 2: Gulp: Task Runner

What is Gulp?

End

Uses

Install

Plugins

Features

Page 3: Gulp: Task Runner

Linting

Preprocessing

Asset Optimization

Prepare Distribution

TemplatingProject

Interpolation

Minify JS/CSS

? ?

?

?

?

LESS/SASS

Unit TestsCoffeescript

Page 4: Gulp: Task Runner

What is Gulp?●Build

system/Automation●Built in Javascript●Streams●Plugins

http://gulpjs.com

Page 5: Gulp: Task Runner

What is Gulp?

End

Uses

Install

Plugins

Features

Page 6: Gulp: Task Runner

What it’s good for?●Combine/Concatenate●Preprocessing SASS/LESS

Coffeescript etc.●Optimizing assets●Tests●Code changes triggered tasks●others via plugins

Page 7: Gulp: Task Runner

What is Gulp?

End

Uses

Install

Plugins

Features

Page 8: Gulp: Task Runner

---- install > npm install -g gulp > npm init

> npm install gulp --save-dev

----- configure > nano gulpfile.js ----- run > gulp

Page 9: Gulp: Task Runner

What is Gulp?

End

Uses

Install

Plugins

Features

Page 10: Gulp: Task Runner

Tasks

Page 11: Gulp: Task Runner

gulp.task('js', function () { ...

});

gulp.task('css', function () { ...

});

gulp.task('server', function () { ...

pipe(livereload());//browser reload

});

gulp.task('default', function () { ...

});

Page 12: Gulp: Task Runner

Source and Destination

Page 13: Gulp: Task Runner

webapp/├── build│ ├── images│ ├── css│ └── js│ └── vendor├── node_modules│ ├── gulp│ ├── gulp-concat│ ├── gulp-html-replace│ ├── gulp-notify│ ├── gulp-uglify│ └── gulp-uglifycss├── src│ ├── images│ ├── css│ └── js│ └── vendor├── package.json└── gulpfile.js

Page 14: Gulp: Task Runner

// process js files save to

build/js

gulp.task('js', function () {

return gulp.src('src/js/*.js')

.pipe(gulp.dest('build/js'));

});

Page 15: Gulp: Task Runner

Streams and Pipe

Page 16: Gulp: Task Runner
Page 17: Gulp: Task Runner

gulp.task('js', function () {

return gulp.src('js/*.js') .pipe(jshint()) .pipe(jshint.reporter('default')) .pipe(uglify()) .pipe(concat('app.js')) .pipe(gulp.dest('build'));

});

Page 18: Gulp: Task Runner

Watch

Page 19: Gulp: Task Runner

gulp.task('setupJSWatch', function () {

gulp.watch('js/*.js', ['build']);

});

gulp.task('build', function () { ...

});

Page 20: Gulp: Task Runner

What is Gulp?

End

Uses

Install

Plugins

Features

Page 21: Gulp: Task Runner

----- add plugins > npm install gulp-[plugin] --save-

dev

... "devDependencies": { "gulp-concat": "^2.3.3",

"gulp-jshint": "^1.7.1", "gulp-rename": "^1.2.0", "gulp-sass": "^0.7.2", "gulp-uglify": "^0.3.1" }

Page 22: Gulp: Task Runner

> npm install --save-dev gulp-concat

concat

Page 23: Gulp: Task Runner

var concat = require(‘gulp-concat’);

gulp.task('js', function () {

return gulp.src('js/*.js') .pipe(concat('app.js'));

.pipe(gulp.dest('build'));

});

Page 24: Gulp: Task Runner

> npm install --save-dev gulp-uglify

uglify

Page 25: Gulp: Task Runner

var concat = require(‘gulp-uglify’);

gulp.task('js', function () {

return gulp.src('js/*.js') .pipe(concat('app.js'));

.pipe(uglify());

.pipe(gulp.dest('build'));

});

Page 26: Gulp: Task Runner

> npm install --save-dev browser-sync

browsersync

Page 27: Gulp: Task Runner

var browserSync= require(‘browser-sync’);

gulp.task('js-watch', ['js'],browserSync.reload);gulp.task('serve', ['js'], function () {

browserSync({ server: { baseDir: "./src/" },

port: 8080 });

// add browserSync.reload to the tasks array to make// all browsers reload after tasks are complete.gulp.watch("js/*.js", ['js-watch']);});

Page 28: Gulp: Task Runner

imagemingulp-coffee/sass/less

livereloadgulp-util

compress/decompressgulp-baseimg

other plugins

http://gulpjs.com/plugins/

Page 29: Gulp: Task Runner

What is Gulp?

Wrap up

Uses

Install

Plugins

Features

Page 30: Gulp: Task Runner

● Gulp is a build system to automate tedious, repetitive but very important tasks

● Tasks/Streams● Learn to use gulp.task, gulp.src,

gulp.dest and gulp.watch● Explore plugins

Wrap up

http://gulpjs.com

Page 31: Gulp: Task Runner

● References○ http://gulpjs.com○ http://www.smashingmagazine.com/2014/06

/11/building-with-gulp/○ http://www.browsersync.io/docs/gulp/○ https://www.npmjs.com/search?q=gulp○ https://github.com/yeoman/generator-gulp-w

ebapp

Gulp: Task Runner

Page 32: Gulp: Task Runner

NodeJS Fundamentals @ [email protected]@chrisbautista

The End