@SilencerWeb

Может кто проверить мой Gulpfile.js?

Здравствуйте. Огромная просьба проверить мой 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();
})


Ссылка на файл
  • Вопрос задан
  • 306 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы