forked from rmdias/gulp-web-app-workflow
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
97 lines (72 loc) · 2.44 KB
/
gulpfile.js
File metadata and controls
97 lines (72 loc) · 2.44 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
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
var gulp = require('gulp');
var gutil = require('gulp-util');
// package.json
var pkg = require('./package.json');
//plugins
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var jshint = require('gulp-jshint');
var sass = require('gulp-ruby-sass');
var minifyHtml = require('gulp-minify-html');
var imagemin = require('gulp-imagemin');
var map = require('map-stream');
// jshint reporter
var myReporter = map(function (file, cb) {
if (!file.jshint.success) {
gutil.log(gutil.colors.yellow.bgRed('JSHINT fail in ' + file.path));
file.jshint.results.forEach(function (err) {
if (err) {
gutil.log(gutil.colors.red(' '+ file.path + ': line ' + err.line + ', col ' + err.character + ', code ' + err.code + ', ' + err.reason));
}
});
}
if (file.jshint.errorCount !== undefined) {
gutil.log(gutil.colors.green('Your project have ' + file.jshint.errorCount + ' errors...'));
} else{
gutil.log(gutil.colors.green(' -- Your project have 0 errors...'));
};
cb(null, file);
});
// tasks
gulp.task('build', function(){
// { concat, minify & jshint }
var scriptFiles = './assets/js/**/*.js';
var scriptDist = './js';
gulp.src(scriptFiles)
.pipe(jshint())
.pipe(myReporter)
.pipe(concat('all.min.js'))
.pipe(uglify())
.pipe(gulp.dest(scriptDist));
// { sass }
var sassFiles = './assets/sass/all.sass';
var sassDist = './css';
gulp.src(sassFiles)
.pipe(concat('all.min.sass'))
.pipe(sass({unixNewlines: true, style: 'compressed'}))
.pipe(gulp.dest('./css'));
// { image optimizer }
var sassFiles = './assets/img/**/*';
var sassDist = './img';
gulp.src(sassFiles)
.pipe(imagemin())
.pipe(gulp.dest(sassDist));
// { html }
var hmltFiles = './assets/html/**/*.html';
var htmlDist = './';
gulp.src(hmltFiles)
.pipe(minifyHtml())
.pipe(gulp.dest(htmlDist));
});
// The default task (called when you run `gulp`)
gulp.task('default', function() {
gulp.run('build');
// Watch files and run tasks if they change
gulp.watch('./assets/**/*', function() {
var date = new Date(), hour = date.getHours(), minutes = date.getMinutes(), seconds = date.getSeconds(),
buildTime = hour + ':' + minutes + ':' + seconds;
gulp.run('build', function() {
gutil.log(gutil.colors.blue('------------- Built! -------------'), gutil.colors.green('( Last time -', buildTime, ')'));
});
});
});