-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
73 lines (63 loc) · 2.84 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
const gulp = require('gulp'), // Подключаем Gulp
browserSync = require('browser-sync'), // Подключаем Browser Sync
concat = require('gulp-concat'), // Подключаем gulp-concat (для конкатенации файлов)
uglify = require('gulp-uglifyjs'), // Подключаем gulp-uglifyjs (для сжатия JS)
cssnano = require('gulp-cssnano'), // Подключаем пакет для минификации CSS
rename = require('gulp-rename'), // Подключаем библиотеку для переименования файлов
del = require('del'), // Подключаем библиотеку для удаления файлов и папок
imagemin = require('gulp-imagemin'), // Подключаем библиотеку для работы с изображениями
pngquant = require('imagemin-pngquant'), // Подключаем библиотеку для работы с png
jpegtran = require('imagemin-jpegtran'),
cache = require('gulp-cache'), // Подключаем библиотеку кеширования
autoprefixer = require('gulp-autoprefixer'),// Подключаем библиотеку для автоматического добавления префиксов
cleanCSS = require('gulp-clean-css'),
htmlmin = require('gulp-htmlmin');
gulp.task('clean', function() {
return del(['dist/*']);
});
gulp.task('styles', function() {
return gulp.src('app/css/**/*.css')
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(cleanCSS( {
level : 2
}))
.pipe(gulp.dest('dist/css'));
})
gulp.task('scripts', function () {
return gulp.src('app/js/**/*')
.pipe(uglify())
.pipe(gulp.dest('dist/js'));
});
gulp.task('imgs', function() {
return gulp.src('app/images/**/*')
.pipe(cache(imagemin({
interlaced: true,
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant(), jpegtran()]
})))
.pipe(gulp.dest('dist/images'))
});
gulp.task('html', function() {
return gulp.src('app/*.html')
.pipe(htmlmin({ collapseWhitespace: true }))
.pipe(gulp.dest('dist'));
});
gulp.task('prebuild', function() {
let font = gulp.src('app/font/**')
.pipe(gulp.dest('dist/font'));
let music = gulp.src('app/music/**/**')
.pipe(gulp.dest('dist/music'));
let jq = gulp.src('app/libs/jquery.min.js')
.pipe(gulp.dest('dist/libs'));
let whyDontyouWantToUglify = gulp.src('app/js/script.js')
.pipe(gulp.dest('dist/js'));
})
gulp.task('watch', function() {
gulp.watch('app/css/**/*.css', gulp.parallel('styles'));
gulp.watch('app/js/**/*.js', gulp.parallel('scripts'));
});
gulp.task('build', gulp.series('clean', gulp.parallel('prebuild', 'imgs', 'styles', 'scripts', 'html')));