Простенький gulpfile
'use strict';
var gulp = require('gulp'),
autoprefixer = require('gulp-autoprefixer'),
gcmq = require('gulp-group-css-media-queries'),
sass = require('gulp-sass'),
cleanCSS = require('gulp-clean-css'),
sourcemaps = require('gulp-sourcemaps'),
watch = require('gulp-watch'),
minify = require('gulp-minify'),
imagemin = require('gulp-imagemin'),
imageminPngquant = require('imagemin-pngquant'),
imageminJpegRecompress = require('imagemin-jpeg-recompress');
var path = {
dev: {
main_css: 'assets/templates/main/dev/css/*.scss',
inside_css: 'assets/templates/inside/dev/css/*.scss',
main_js: 'assets/templates/main/dev/js/*.js',
inside_js: 'assets/templates/inside/dev/js/*.js',
images : 'assets/imagesIshodniki/**/*.*'
},
build: {
main_css: 'assets/templates/main/css/',
inside_css: 'assets/templates/inside/css/',
main_js: 'assets/templates/main/js/',
inside_js: 'assets/templates/inside/js/',
images: 'assets/imagesMin/'
}
};
gulp.task('main:css', function () {
gulp.src(path.dev.main_css)
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(autoprefixer())
.pipe(gcmq())
.pipe(cleanCSS())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(path.build.main_css));
});
gulp.task('inside:css', function () {
gulp.src(path.dev.inside_css)
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(autoprefixer())
.pipe(gcmq())
.pipe(cleanCSS())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(path.build.inside_css));
});
gulp.task('main:js', function () {
gulp.src(path.dev.main_js)
// .pipe(sourcemaps.init())
.pipe(minify({
ext:{
src:'-debug.js',
min:'.min.js'
}
}))
// .pipe(sourcemaps.write())
.pipe(gulp.dest(path.build.main_js));
});
gulp.task('inside:js', function () {
gulp.src(path.dev.inside_js)
.pipe(sourcemaps.init())
.pipe(minify({
ext:{
src:'-debug.js',
min:'.min.js'
}
}))
.pipe(sourcemaps.write())
.pipe(gulp.dest(path.build.inside_js));
});
gulp.task('img:prod', function () {
return gulp.src(path.dev.images) //Выберем наши картинки
.pipe(gulp.dest(path.build.images)) //Копируем изображения заранее, imagemin может пропустить парочку )
.pipe(imagemin([
imagemin.gifsicle({interlaced: true}),
imageminJpegRecompress({
progressive: true,
max: 80,
min: 70
}),
imageminPngquant({quality: '80'}),
imagemin.svgo({plugins: [{removeViewBox: true}]})
]))
.pipe(gulp.dest(path.build.images)); //И бросим в prod отпимизированные изображения
});
gulp.task('watch', function(){
watch(path.dev.main_css, function(event, cb) {
gulp.start('main:css');
});
watch(path.dev.inside_css, function(event, cb) {
gulp.start('inside:css');
});
watch(path.dev.main_js, function(event, cb) {
gulp.start('main:js');
});
watch(path.dev.inside_js, function(event, cb) {
gulp.start('inside:js');
});
});
gulp.task('default', ['watch']);
{
"name": "tornadologo.ru",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.1",
"gulp-clean-css": "^3.0.4",
"gulp-group-css-media-queries": "^1.2.0",
"gulp-imagemin": "^3.3.0",
"gulp-minify": "0.0.15",
"gulp-sass": "^3.1.0",
"gulp-sourcemaps": "^2.5.0",
"gulp-watch": "^4.3.11"
},
"dependencies": {
"imagemin-jpeg-recompress": "^5.1.0",
"imagemin-pngquant": "^5.0.1"
}
}