-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
52 lines (42 loc) · 1.3 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
const gulp = require('gulp'),
webpack = require('gulp-webpack'),
rename = require('gulp-rename'),
htmlmin = require('gulp-htmlmin'),
less = require('gulp-less'),
cleanCSS = require('gulp-clean-css'),
prefixer = require('gulp-autoprefixer'),
sourcemaps = require('gulp-sourcemaps');
gulp.task('htmlTask', _ => {
return gulp.src('src/*.html')
.pipe(htmlmin({
collapseWhitespace: true,
collapseBooleanAttributes: true,
collapseInlineTagWhitespace: true,
conservativeCollapse: true,
minifyJS: true,
minifyCSS: true,
preserveLineBreaks: true,
sortAttributes: true,
sortClassName: true
}))
.pipe(gulp.dest('public'));
});
gulp.task('cssTask', _ => {
return gulp.src('src/less/*.less')
.pipe(sourcemaps.init())
.pipe(less())
.pipe(prefixer())
.pipe(cleanCSS())
.pipe(rename({suffix: '.min'}))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('public/css/'));
});
gulp.task('jsTask', _ => {
return gulp.src('public/js/core.js')
.pipe(webpack(require('./webpack.config.js')))
.pipe(gulp.dest('public/js'));
});
gulp.task('default', ['htmlTask', 'cssTask', 'jsTask'], _ => {})
gulp.watch('src/js/*.js', ['jsTask']);
gulp.watch('src/less/*.less', ['cssTask']);
gulp.watch('src/*.html', ['htmlTask']);