3 category: JavaScript libraries
13 * gulp-livereload (requires tiny-lr)
18 * gulp-header (headers in files)
23 * gulp-size (displays size)
30 var gulp = require('gulp'),
31 sass = require('gulp-ruby-sass'),
32 autoprefixer = require('gulp-autoprefixer'),
33 minifycss = require('gulp-minify-css'),
34 jshint = require('gulp-jshint'),
35 uglify = require('gulp-uglify'),
36 imagemin = require('gulp-imagemin'),
37 rename = require('gulp-rename'),
38 clean = require('gulp-clean'),
39 concat = require('gulp-concat'),
40 notify = require('gulp-notify'),
41 cache = require('gulp-cache'),
42 livereload = require('gulp-livereload'),
43 lr = require('tiny-lr'),
47 gulp.task('styles', function() {
48 return gulp.src('src/styles/main.scss')
49 .pipe(sass({ style: 'expanded', }))
50 .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
51 .pipe(gulp.dest('dist/styles'))
52 .pipe(rename({ suffix: '.min' }))
54 .pipe(livereload(server))
55 .pipe(gulp.dest('dist/styles'))
56 .pipe(notify({ message: 'Styles task complete' }));
60 gulp.task('scripts', function() {
61 return gulp.src('src/scripts/**/*.js')
62 .pipe(jshint('.jshintrc'))
63 .pipe(jshint.reporter('default'))
64 .pipe(concat('main.js'))
65 .pipe(gulp.dest('dist/scripts'))
66 .pipe(rename({ suffix: '.min' }))
68 .pipe(livereload(server))
69 .pipe(gulp.dest('dist/scripts'))
70 .pipe(notify({ message: 'Scripts task complete' }));
74 gulp.task('images', function() {
75 return gulp.src('src/images/**/*')
76 .pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true })))
77 .pipe(livereload(server))
78 .pipe(gulp.dest('dist/images'))
79 .pipe(notify({ message: 'Images task complete' }));
83 gulp.task('clean', function() {
84 return gulp.src(['dist/styles', 'dist/scripts', 'dist/images'], {read: false})
89 gulp.task('default', ['clean'], function() {
90 gulp.start('styles', 'scripts', 'images');
94 gulp.task('watch', function() {
96 // Listen on port 35729
97 server.listen(35729, function (err) {
99 return console.log(err)
103 gulp.watch('src/styles/**/*.scss', ['styles']);
106 gulp.watch('src/scripts/**/*.js', ['scripts']);
109 gulp.watch('src/images/**/*', ['images']);
117 https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md#getting-started
121 var lr = require('tiny-lr')();
123 function notify (lr, root) {
124 return function (event) {
125 var fname = require('path').relative(root, event.path);
126 lr.changed({ body: { files: [ fname ] }});
130 gulp.task('livereload', function () {
132 gulp.watch('public/**/*', notify(lr, __dirname+'/public'));
136 app.use(require('connect-livereload')())
137 <!-- livereload --><script>document.write('<script src="'+(location.protocol||'http:')+'//'+(location.hostname||'localhost')+':35729/livereload.js?snipver=1"><\/scr'+'ipt>')</script>