var
gulp = require(
'gulp'
),
sass = require(
'gulp-ruby-sass'
),
autoprefixer = require(
'gulp-autoprefixer'
),
minifycss = require(
'gulp-minify-css'
),
jshint = require(
'gulp-jshint'
),
uglify = require(
'gulp-uglify'
),
imagemin = require(
'gulp-imagemin'
),
rename = require(
'gulp-rename'
),
clean = require(
'gulp-clean'
),
concat = require(
'gulp-concat'
),
notify = require(
'gulp-notify'
),
cache = require(
'gulp-cache'
),
livereload = require(
'gulp-livereload'
);
gulp.task(
'styles'
,
function
() {
return
gulp.src(
'src/styles/main.scss'
)
.pipe(sass({ style:
'expanded'
, }))
.pipe(autoprefixer(
'last 2 version'
,
'safari 5'
,
'ie 8'
,
'ie 9'
,
'opera 12.1'
,
'ios 6'
,
'android 4'
))
.pipe(gulp.dest(
'dist/styles'
))
.pipe(rename({ suffix:
'.min'
}))
.pipe(minifycss())
.pipe(gulp.dest(
'dist/styles'
))
.pipe(notify({ message:
'Styles task complete'
}));
});
gulp.task(
'scripts'
,
function
() {
return
gulp.src(
'src/scripts/**/*.js'
)
.pipe(jshint(
'.jshintrc'
))
.pipe(jshint.reporter(
'default'
))
.pipe(concat(
'main.js'
))
.pipe(gulp.dest(
'dist/scripts'
))
.pipe(rename({ suffix:
'.min'
}))
.pipe(uglify())
.pipe(gulp.dest(
'dist/scripts'
))
.pipe(notify({ message:
'Scripts task complete'
}));
});
gulp.task(
'images'
,
function
() {
return
gulp.src(
'src/images/**/*'
)
.pipe(cache(imagemin({ optimizationLevel: 3, progressive:
true
, interlaced:
true
})))
.pipe(gulp.dest(
'dist/images'
))
.pipe(notify({ message:
'Images task complete'
}));
});
gulp.task(
'clean'
,
function
() {
return
gulp.src([
'dist/styles'
,
'dist/scripts'
,
'dist/images'
], {read:
false
})
.pipe(clean());
});
gulp.task(
'default'
, [
'clean'
],
function
() {
gulp.start(
'styles'
,
'scripts'
,
'images'
);
});
gulp.task(
'watch'
,
function
() {
gulp.watch(
'src/styles/**/*.scss'
, [
'styles'
]);
gulp.watch(
'src/scripts/**/*.js'
, [
'scripts'
]);
gulp.watch(
'src/images/**/*'
, [
'images'
]);
var
server = livereload();
gulp.watch([
'dist/**'
]).on(
'change'
,
function
(file) {
server.changed(file.path);
});
});