-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
68 lines (57 loc) · 1.49 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
const gulp = require('gulp');
const rigger = require('gulp-rigger');
const sass = require('gulp-sass');
const browserSync = require('browser-sync').create();
const autoprefixer = require('gulp-autoprefixer');
const sourcemaps = require('gulp-sourcemaps');
const plumber = require('gulp-plumber');
const paths = {
styles: {
src: 'scss/**/*.scss',
dest: './app/css'
},
layout: {
src: 'html/**/*.html',
dest: 'app'
},
scripts: {
src: 'scripts',
dest: 'app/js'
}
};
function styles() {
return gulp.src(paths.styles.src)
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(autoprefixer())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(paths.styles.dest));
}
function layout() {
return gulp.src(paths.layout.src)
.pipe(plumber())
.pipe(rigger())
.pipe(gulp.dest(paths.layout.dest))
}
function serve() {
browserSync.init({
server: './app'
});
}
function watch() {
gulp.watch(paths.styles.src, styleAndReload);
gulp.watch(paths.layout.src, layoutAndReload);
gulp.watch(paths.scripts.dest, reload);
}
function reload(done) {
browserSync.reload();
done();
}
const styleAndReload = gulp.series(styles, reload);
const layoutAndReload = gulp.series(layout, reload);
const def = gulp.parallel(serve, styles, layout, watch);
gulp.task('styles', styles);
gulp.task('pug', layout);
gulp.task('watch', watch);
gulp.task('default', def);