-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
90 lines (83 loc) · 1.76 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
/*
* Importing all the installed/required `devDependencies`
*/
const gulp = require("gulp"),
sass = require("gulp-sass"),
jsmini = require("gulp-terser"),
cssmini = require("gulp-uglifycss"),
cssprefix = require("gulp-autoprefixer"),
srcmaps = require("gulp-sourcemaps"),
browserSync = require("browser-sync").create();
/*
* Watch the files for changes
*/
const paths = {
sass: {
src: "./lib/sass/**/*.scss",
dest: "./dist/css"
},
css: {
src: "./dist/css/**/*.css",
map: "../../lib/sourcmaps/css"
},
es6: {
src: ["./lib/es6/**/*.js"],
dest: "./dist/js"
},
js: {
src: "./lib/es6/**/*.js",
map: "../../lib/sourcmaps/js",
dest: "./dist/js"
},
html: ["./**/*.html"]
};
/*
*
* Watch `scss` files to `css` and autoprefix,
* and minify them
*
* Watch all `js` files for changes and minify
* them
*
*/
function style() {
return gulp
.src(paths.sass.src)
.pipe(srcmaps.init())
.pipe(sass())
.pipe(cssprefix("last 2 versions"))
.pipe(cssmini())
.pipe(srcmaps.write(paths.css.map))
.pipe(gulp.dest(paths.sass.dest))
.pipe(browserSync.stream());
}
exports.style = style;
function js() {
return gulp
.src(paths.js.src)
.pipe(srcmaps.init())
.pipe(jsmini())
.pipe(srcmaps.write(paths.js.map))
.pipe(gulp.dest(paths.js.dest))
.pipe(browserSync.stream());
}
exports.js = js;
/*
* Watch all the files for changes and stream/reload for changes
*/
const sync = cb => {
browserSync.init({
server: {
baseDir: "./"
}
});
cb();
}
exports.sync = sync;
const watch = gulp.series(sync, cb => {
gulp.watch(paths.sass.src, style);
gulp.watch(paths.js.src, js);
gulp.watch(paths.html).on("change", browserSync.reload);
cb();
});
exports.watch = watch;