-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
106 lines (89 loc) · 2.65 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
var
gulp = require('gulp'),
gulpif = require('gulp-if'),
addsrc = require('gulp-add-src'),
concat = require('gulp-concat'),
sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
minifyCss = require('gulp-minify-css'),
sourcemaps = require('gulp-sourcemaps'),
uglify = require('gulp-uglify'),
notify = require('gulp-notify'),
plumber = require('gulp-plumber');
/*CONFIG*/
var config = {
'develop': true,
'jsPrimary': [
"src/js/*.js"
] ,
'jsVendor' : [
"src/js/vendor/**/*.js"
]
};
var onError = function (err) {
notify.onError({
title: "Gulp",
subtitle: "Failure!",
message: "Error: <%= error.message %>",
sound: "Beep"
})(err);
this.emit('end');
};
/*BOWER*/
gulp.task('bower', function () {
require('bower-installer');
});
/*SUBTASK*/
gulp.task('js', function () {
gulp.src(
config.jsVendor
.concat(config.jsPrimary))
.pipe(gulpif( (config.develop === false) , sourcemaps.init() ))
.pipe(plumber({ errorHandler: onError }))
.pipe(concat('default.js'))
.pipe(gulpif( (config.develop === false) , sourcemaps.write('default.js.map') ))
.pipe(gulp.dest("./public"));
});
gulp.task('css', function () {
gulp.src('src/scss/main.scss')
.pipe(plumber({ errorHandler: onError }))
.pipe(sass())
.pipe(addsrc.append('./src/css/vendor/**/*.css'))
.pipe(addsrc.append('./src/css/module/**/*.css'))
.pipe(autoprefixer())
.pipe(concat('default.css'))
.pipe(minifyCss())
.pipe(gulp.dest("./public"));
});
gulp.task('html',function(){
gulp.src('./src/html/*.html')
.pipe(plumber({ errorHandler: onError }))
.pipe(gulp.dest('./public/html'));
});
gulp.task('img',function(){
gulp.src('./src/img/**/*.*')
.pipe(plumber({ errorHandler: onError }))
.pipe(gulp.dest('./public/img'));
});
gulp.task('fonts', function() {
gulp.src('./src/fonts/**/*.*')
.pipe(plumber({ errorHandler: onError }))
.pipe(gulp.dest('./public/fonts'));
});
/*WATCH*/
gulp.task('mainTask', ['css', 'js', 'html', 'img', 'fonts']);
gulp.task('dev', function () {
config.develop = true;
gulp.run('mainTask');
});
gulp.task('prod', function () {
config.develop = false;
gulp.run('mainTask');
});
gulp.task('watch', function () {
gulp.run('dev');
gulp.watch(['./src/**'], function () {
gulp.run('dev');
});
});
gulp.task('default', ['watch']);