forked from jaunotoshi/disable-javascript
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
98 lines (82 loc) · 1.72 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
89
90
91
92
93
94
95
96
97
98
'use strict';
// Gulp packages.
const gulp = require('gulp');
const sass = require('gulp-sass');
const uglify = require('gulp-uglify');
const plumber = require("gulp-plumber");
const del = require('del');
const rename = require('gulp-rename');
const sassGlob = require('gulp-sass-glob');
// Path settings.
let paths = {
sass: './pages/src/sass',
css: './pages/dist/css',
js_src: './pages/src/js',
js_dist: './pages/dist/js'
};
// SASS settings.
let options = {
sass: {
outputStyle: 'compressed'
},
uglify: {
output: {
quote_style: 1
}
}
};
//--------------- Cleaning functions.
function cleanCSS() {
return del([
paths.css + '/*'
]);
}
function cleanJS() {
return del([
paths.js_dist + '/*'
]);
}
function clean() {
cleanCSS();
cleanJS();
}
//--------------- Compiling functions.
function compileCSS() {
return gulp
.src(paths.sass + '/**/*.scss')
.pipe(sassGlob())
.pipe(plumber())
.pipe(sass(options.sass))
.pipe(gulp.dest(paths.css));
}
function compileJS() {
return gulp
.src(paths.js_src + '/*.js')
.pipe(plumber())
.pipe(uglify(options.uglify))
.pipe(rename({ suffix: ".min" }))
.pipe(gulp.dest(paths.js_dist));
}
gulp.task('compile', done => {
compileCSS();
compileJS();
done();
});
//--------------- Watcher.
function watch() {
gulp.watch(paths.sass + '/**/*.scss', compileCSS);
gulp.watch(paths.js_src + '/**/*.js', compileJS);
}
//--------------- Default function.
function defaultTask() {
clean();
compile();
watch();
}
exports.cleanCSS = cleanCSS;
exports.cleanJS = cleanJS;
exports.clean = clean;
exports.compileCSS = compileCSS;
exports.compileJS = compileJS;
exports.watch = watch;
exports.default = defaultTask;