-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
66 lines (59 loc) · 1.6 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
const {src, dest, watch, parallel, series} = require('gulp');
const sass = require('gulp-sass');
const maps = require('gulp-sourcemaps');
const post = require('gulp-postcss');
const prefix = require('autoprefixer');
const cssnano= require('cssnano');
const replace = require('gulp-replace');
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const autoprefixer = require('autoprefixer');
const browser = require('browser-sync').create();
//path file
const file = {
scss : 'dist/scss/*.scss',
js : 'dist/js/*.js'
}
//csstask
const csstask = () => {
return src(file.scss)
.pipe(maps.init())
.pipe(sass())
.pipe(post([autoprefixer(), cssnano()]))
.pipe(concat('style.css'))
.pipe(maps.write('.'))
.pipe(concat('main.css'))
.pipe(dest('src/css/'))
.pipe(browser.stream())
}
//js task
const jstask = () => {
return src(file.js)
.pipe(uglify())
.pipe(concat('app.js'))
.pipe(dest('src/js'))
.pipe(browser.stream())
}
//cache replace
const rand = new Date().getTime();
const cache = () => {
return src('index.html')
.pipe(replace(/v=\d+/g, 'v=' + rand))
.pipe(dest('./'))
}
//watch task
const server = () => {
browser.init({
server : {
baseDir: './'
}
})
watch([file.scss, file.js], parallel(csstask,jstask));
watch('*.html').on('change', browser.reload);
};
//default task
exports.default = series(
parallel(csstask,jstask),
cache,
server
);