Skip to content

Commit

Permalink
Update gulp to 4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
itchief committed Dec 19, 2018
1 parent 008303f commit d516199
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 62 deletions.
112 changes: 58 additions & 54 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -1,41 +1,43 @@
"use strict";
'use strict';

/* параметры для gulp-autoprefixer */
var autoprefixerList = [
'Chrome >= 45',
'Firefox ESR',
'Edge >= 12',
'Explorer >= 10',
'iOS >= 9',
'Safari >= 9',
'Android >= 4.4',
'Opera >= 30'
'Chrome >= 45',
'Firefox ESR',
'Edge >= 12',
'Explorer >= 10',
'iOS >= 9',
'Safari >= 9',
'Android >= 4.4',
'Opera >= 30'
];

/* пути к исходным файлам (src), к готовым файлам (build), а также к тем, за изменениями которых нужно наблюдать (watch) */
var path = {
build: {
html: 'assets/build/',
js: 'assets/build/js/',
css: 'assets/build/css/',
img: 'assets/build/img/',
html: 'assets/build/',
js: 'assets/build/js/',
css: 'assets/build/css/',
img: 'assets/build/img/',
fonts: 'assets/build/fonts/'
},
src: {
html: 'assets/src/*.html',
js: 'assets/src/js/main.js',
html: 'assets/src/*.html',
js: 'assets/src/js/main.js',
style: 'assets/src/style/main.scss',
img: 'assets/src/img/**/*.*',
img: 'assets/src/img/**/*.*',
fonts: 'assets/src/fonts/**/*.*'
},
watch: {
html: 'assets/src/**/*.html',
js: 'assets/src/js/**/*.js',
css: 'assets/src/style/**/*.scss',
img: 'assets/src/img/**/*.*',
html: 'assets/src/**/*.html',
js: 'assets/src/js/**/*.js',
css: 'assets/src/style/**/*.scss',
img: 'assets/src/img/**/*.*',
fonts: 'assets/srs/fonts/**/*.*'
},
clean: './assets/build'
clean: './assets/build/*'
};

/* настройки сервера */
var config = {
server: {
Expand All @@ -49,16 +51,16 @@ var gulp = require('gulp'), // подключаем Gulp
webserver = require('browser-sync'), // сервер для работы и автоматического обновления страниц
plumber = require('gulp-plumber'), // модуль для отслеживания ошибок
rigger = require('gulp-rigger'), // модуль для импорта содержимого одного файла в другой
 sourcemaps = require('gulp-sourcemaps'), // модуль для генерации карты исходных файлов
sourcemaps = require('gulp-sourcemaps'), // модуль для генерации карты исходных файлов
sass = require('gulp-sass'), // модуль для компиляции SASS (SCSS) в CSS
  autoprefixer = require('gulp-autoprefixer'), // модуль для автоматической установки автопрефиксов
autoprefixer = require('gulp-autoprefixer'), // модуль для автоматической установки автопрефиксов
cleanCSS = require('gulp-clean-css'), // плагин для минимизации CSS
uglify = require('gulp-uglify'), // модуль для минимизации JavaScript
cache = require('gulp-cache'), // модуль для кэширования
imagemin = require('gulp-imagemin'), // плагин для сжатия PNG, JPEG, GIF и SVG изображений
jpegrecompress = require('imagemin-jpeg-recompress'), // плагин для сжатия jpeg
pngquant = require('imagemin-pngquant'), // плагин для сжатия png
del = require('del'), // плагин для удаления файлов и каталогов
rimraf = require('gulp-rimraf'), // плагин для удаления файлов и каталогов
rename = require('gulp-rename');

/* задачи */
Expand All @@ -74,7 +76,7 @@ gulp.task('html:build', function () {
.pipe(plumber()) // отслеживание ошибок
.pipe(rigger()) // импорт вложений
.pipe(gulp.dest(path.build.html)) // выкладывание готовых файлов
.pipe(webserver.reload({stream: true})); // перезагрузка сервера
.pipe(webserver.reload({ stream: true })); // перезагрузка сервера
});

// сбор стилей
Expand All @@ -87,11 +89,11 @@ gulp.task('css:build', function () {
browsers: autoprefixerList
}))
.pipe(gulp.dest(path.build.css))
.pipe(rename({suffix: '.min'}))
.pipe(rename({ suffix: '.min' }))
.pipe(cleanCSS()) // минимизируем CSS
.pipe(sourcemaps.write('./')) // записываем sourcemap
.pipe(gulp.dest(path.build.css)) // выгружаем в build
.pipe(webserver.reload({stream: true})); // перезагрузим сервер
.pipe(webserver.reload({ stream: true })); // перезагрузим сервер
});

// сбор js
Expand All @@ -100,16 +102,16 @@ gulp.task('js:build', function () {
.pipe(plumber()) // для отслеживания ошибок
.pipe(rigger()) // импортируем все указанные файлы в main.js
.pipe(gulp.dest(path.build.js))
.pipe(rename({suffix: '.min'}))
.pipe(rename({ suffix: '.min' }))
.pipe(sourcemaps.init()) //инициализируем sourcemap
.pipe(uglify()) // минимизируем js
.pipe(sourcemaps.write('./')) // записываем sourcemap
.pipe(gulp.dest(path.build.js)) // положим готовый файл
.pipe(webserver.reload({stream: true})); // перезагрузим сервер
.pipe(webserver.reload({ stream: true })); // перезагрузим сервер
});

// перенос шрифтов
gulp.task('fonts:build', function() {
gulp.task('fonts:build', function () {
return gulp.src(path.src.fonts)
.pipe(gulp.dest(path.build.fonts));
});
Expand All @@ -118,51 +120,53 @@ gulp.task('fonts:build', function() {
gulp.task('image:build', function () {
return gulp.src(path.src.img) // путь с исходниками картинок
.pipe(cache(imagemin([ // сжатие изображений
imagemin.gifsicle({interlaced: true}),
imagemin.gifsicle({ interlaced: true }),
jpegrecompress({
progressive: true,
max: 90,
min: 80
}),
pngquant(),
imagemin.svgo({plugins: [{removeViewBox: false}]})
])))
imagemin.svgo({ plugins: [{ removeViewBox: false }] })
])))
.pipe(gulp.dest(path.build.img)); // выгрузка готовых файлов
});

// удаление каталога build
gulp.task('clean:build', function () {
del.sync(path.clean);
return gulp.src(path.clean, { read: false })
.pipe(rimraf());
});

// очистка кэша
gulp.task('cache:clear', function () {
cache.clearAll();
cache.clearAll();
});

// сборка
gulp.task('build', [
'clean:build',
'html:build',
'css:build',
'js:build',
'fonts:build',
'image:build'
]);
gulp.task('build',
gulp.series('clean:build',
gulp.parallel(
'html:build',
'css:build',
'js:build',
'fonts:build',
'image:build'
)
)
);

// запуск задач при изменении файлов
gulp.task('watch', function() {
gulp.watch(path.watch.html, ['html:build']);
gulp.watch(path.watch.css, ['css:build']);
gulp.watch(path.watch.js, ['js:build']);
gulp.watch(path.watch.img, ['image:build']);
gulp.watch(path.watch.fonts, ['fonts:build']);
gulp.task('watch', function () {
gulp.watch(path.watch.html, gulp.series('html:build'));
gulp.watch(path.watch.css, gulp.series('css:build'));
gulp.watch(path.watch.js, gulp.series('js:build'));
gulp.watch(path.watch.img, gulp.series('image:build'));
gulp.watch(path.watch.fonts, gulp.series('fonts:build'));
});

// задача по умолчанию
gulp.task('default', [
'clean:build',
gulp.task('default', gulp.series(
'build',
'webserver',
'watch'
]);
gulp.parallel('webserver','watch')
));
16 changes: 8 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@
"bootstrap": "^4.1.3"
},
"devDependencies": {
"browser-sync": "^2.24.7",
"del": "^3.0.0",
"gulp": "^3.9.1",
"browser-sync": "^2.26.3",
"gulp": "^4.0.0",
"gulp-autoprefixer": "^6.0.0",
"gulp-cache": "^1.0.2",
"gulp-clean-css": "^3.10.0",
"gulp-imagemin": "^4.1.0",
"gulp-plumber": "^1.2.0",
"gulp-clean-css": "^4.0.0",
"gulp-rimraf": "^0.2.2",
"gulp-imagemin": "^5.0.3",
"gulp-plumber": "^1.2.1",
"gulp-rigger": "^0.5.8",
"gulp-sass": "^4.0.1",
"gulp-sass": "^4.0.2",
"gulp-sourcemaps": "^2.6.4",
"gulp-uglify": "^3.0.1",
"imagemin-jpeg-recompress": "^5.1.0",
"imagemin-jpeg-recompress": "^6.0.0",
"imagemin-pngquant": "^6.0.0",
"gulp-rename": "^1.4.0"
}
Expand Down

0 comments on commit d516199

Please sign in to comment.