-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgulpfile.js
More file actions
66 lines (60 loc) · 1.74 KB
/
Copy pathgulpfile.js
File metadata and controls
66 lines (60 loc) · 1.74 KB
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
// Gulp – compile & minify files, run server, watch for changes
var gulp = require('gulp'),
concat = require('gulp-concat'), // concatenate scripts
babel = require('gulp-babel'), // transpile scripts to ES6
uglify = require('gulp-uglify'), // minify scripts
scss = require('gulp-scss'), // compile SCSS files to CSS
autoprefixer = require('gulp-autoprefixer'), // auto-prefix CSS
cleanCSS = require('gulp-clean-css'), // minify styles
rename = require('gulp-rename'), // rename files when saving to build
pump = require('pump'); // error handling
webserver = require('gulp-webserver');
/*
Compile Styles
*/
gulp.task('styles',function(cb) {
pump([
gulp.src('styles/style.scss'),
scss(),
autoprefixer(),
gulp.dest('build'),
cleanCSS(),
rename({ suffix: '.min' }),
gulp.dest('build')
],
cb);
});
/*
Concatenate JS
*/
gulp.task('scripts', function(cb) {
pump([
gulp.src('scripts/*.js'),
concat('script.js'),
gulp.dest('build'),
babel({ presets: ['es2015'] }),
uglify(),
rename({ suffix: '.min' }),
gulp.dest('build')
],
cb);
});
/*
Watch for Changes
*/
gulp.task('watch', function() {
gulp.watch('scripts/*.js', ['scripts']);
gulp.watch('styles/*.scss', ['styles']);
});
/*
Webserver
*/
gulp.task('webserver', function() {
gulp.src('.')
.pipe(webserver({
livereload: true,
directoryListing: true,
open: true
}));
});
gulp.task('default', ['styles', 'scripts', 'watch', 'webserver']);