-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
89 lines (80 loc) · 2.15 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
const {src, dest, watch, series} = require('gulp');
const browserSync = require('browser-sync').create();
const cleanCSS = require('gulp-clean-css');
const sass = require("gulp-sass");
const minify = require('gulp-minify');
const htmlmin = require('gulp-htmlmin');
const tinypng = require('gulp-tinypng-compress');
const autoprefixer = require('gulp-autoprefixer');
function minifyCSS(done) {
src('./css/**.css')
.pipe(cleanCSS({compatibility: 'ie8'}))
.pipe(dest('dist/css'));
done()
}
function minifyJS(done){
src(['./js/*.js', '!./js/*.min.js'])
.pipe(minify({
ext:{
min:'.js'
},
noSource: true,
}))
.pipe(dest('dist/js/'));
src('./js/**.min.js')
.pipe(dest('dist/js/'));
done();
}
function minifyHTML(done) {
src('./*.html')
.pipe(htmlmin({ collapseWhitespace: true }))
.pipe(dest('dist'));
done()
}
function php(done) {
src('./**.php')
.pipe(dest('dist'));
src('./phpmailer/**/**')
.pipe(dest('dist/phpmailer/'));
done();
}
function fonts(done) {
src('./fonts/**/**')
.pipe(dest('dist/fonts/'));
done();
}
function minifyIMG(done) {
src('./img/**/*.{png,jpg,jpeg}')
.pipe(tinypng({key: 'yTqLWYR5pCByFslJMlH4zZXL09Yc6vYr',}))
.pipe(dest('dist/img/'));
src(['./img/**/*.ico', './img/**/*.svg'])
.pipe(dest('dist/img/'))
done();
}
function style() {
return src('./sass/**/*.sass', './sass/**/*.scss')
.pipe(sass())
.pipe(autoprefixer({
cascade: false
}))
.pipe(dest('./css'))
.pipe(browserSync.stream())
}
function server() {
style();
browserSync.init({
server: {
baseDir: "./"
}
})
watch("./sass/**/*.sass", style);
watch("./sass/**/*.scss", style);
watch("./js/**/*.js").on('change', browserSync.reload);
watch("./*.html").on('change', browserSync.reload);
}
exports.server = server;
exports.minifyCSS = minifyCSS;
exports.minifyJS = minifyJS;
exports.minifyHTML = minifyHTML;
exports.minifyIMG = minifyIMG;
exports.minifyAll = series(minifyCSS, minifyHTML, php, fonts, minifyJS, minifyIMG);