Здравствуйте. Огромная просьба проверить мой gulpfile.js на правильность написания,может есть какие-то ошибки или можно что-то добавить.Собирал его не я,мне его скинули,я разобрался и пользовался им,сегодня решил добавить минификацию css и сжатие изображений. Минификация работает,а сжатие нет. Надеюсь на вашу помощь :)
var gulp = require('gulp'),
del = require('del'),
autoprefixer = require('gulp-autoprefixer'),
browserSync = require('browser-sync'),
sass = require('gulp-sass'),
pug = require('gulp-pug'),
rename = require("gulp-rename"),
concat = require("gulp-concat"),
insert = require('gulp-insert'),
runSequence = require('run-sequence'),
watch = require('gulp-watch'),
batch = require('gulp-batch'),
plumber = require('gulp-plumber'),
combineMq = require('gulp-combine-mq'),
cssnano = require('gulp-cssnano'),
imagemin = require('gulp-imagemin'),
pngquant = require('imagemin-pngquant'),
cache = require('gulp-cache');
gulp.task('default', function () {
gulp.start('build');
});
gulp.task('build', [
'fonts',
'images',
'scripts:jquery',
'scripts:plugins',
'scripts',
'templates',
'styles'
]);
gulp.task('clean', function () {
return del([
'build/*',
]);
});
gulp.task('images', function () {
gulp.src(['./src/images/*', './src/images/**/*', './src/blocks/**/images/*'])
.pipe(plumber())
.pipe(rename({dirname: ''}))
.pipe(cache(imagemin({
interlaced: true,
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant({
quality: '65-80'
})]
})))
.pipe(gulp.dest('./build/img'))
.pipe(browserSync.reload({stream: true}));
});
gulp.task('templates', function () {
var params = {};
gulp.src('./src/pages/*.pug')
.pipe(plumber())
.pipe(pug({
locals: params,
pretty: true
}))
.pipe(gulp.dest('./build'))
.pipe(browserSync.reload({stream: true}));
});
gulp.task('fonts', function () {
gulp.src('./src/fonts/**/*')
.pipe(plumber())
.pipe(gulp.dest('./build/fonts'))
.pipe(browserSync.reload({stream: true}));
});
gulp.task('scripts:jquery', function () {
gulp.src('./src/scripts/jquery.min.js')
.pipe(plumber())
.pipe(gulp.dest('./build/js'));
});
gulp.task('scripts:plugins', function () {
gulp.src('./src/scripts/plugins/*.js')
.pipe(plumber())
.pipe(concat('plugins.js'))
.pipe(gulp.dest('./build/js'));
});
gulp.task('scripts', function () {
gulp.src(['./src/blocks/**/*.js', './src/scripts/script.js'])
.pipe(plumber())
.pipe(concat('script.js'))
.pipe(insert.wrap('$(document).ready(function(){', '})'))
.pipe(gulp.dest('./build/js'))
.pipe(browserSync.reload({stream: true}));
});
gulp.task('server', function () {
browserSync.init({
server: {
baseDir: "build"
},
reloadOnRestart: true,
open: false
});
});
gulp.task('styles', function () {
gulp.src('./src/styles/style.scss')
.pipe(plumber())
.pipe(sass())
.pipe(combineMq({
beautify: false
}))
.pipe(autoprefixer({
browsers: ['last 20 versions']
}))
.pipe(cssnano())
.pipe(gulp.dest('./build/css'))
.pipe(browserSync.reload({stream: true}));
});
gulp.task('watch', function () {
watch(['./src/styles/*.scss', './src/styles/global/*.scss', './src/blocks/**/*.scss', './src/styles/plugins/*.scss'], batch(function (events, done) {
gulp.start('styles', done);
}));
watch(['./src/pages/*.pug', './src/templates/*.pug', './src/blocks/**/*.pug'], batch(function (events, done) {
gulp.start('templates', done);
}));
watch(['./src/images/*', './src/blocks/**/images/*'], batch(function (events, done) {
gulp.start('images', done);
}));
watch(['./src/blocks/**/*.js', './src/scripts/*.js'], batch(function (events, done) {
gulp.start('scripts', done);
}));
watch('./src/fonts/*', batch(function (events, done) {
gulp.start('fonts', done);
}));
watch('./src/scripts/plugins/*.js', batch(function (events, done) {
gulp.start('scripts:plugins', done);
}));
});
gulp.task('dev', ['build', 'server', 'watch']);
gulp.task('clear', function (callback) {
return cache.clearAll();
})
Ссылка на файл