-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathgulpfile.js
More file actions
125 lines (108 loc) · 3.16 KB
/
gulpfile.js
File metadata and controls
125 lines (108 loc) · 3.16 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
'use strict';
var gulp = require('gulp');
var gutil = require('gulp-util');
var clean = require('gulp-clean');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var minifyCss = require('gulp-minify-css');
var minifyHtml = require('gulp-minify-html');
var ngHtml2Js = require('gulp-ng-html2js');
var sequence = require('run-sequence');
var color = {
green: function (message) {
return gutil.colors.green(message);
},
blue: function (message) {
return gutil.colors.blue(message);
},
gray: function (message) {
return gutil.colors.gray(message);
},
yellow: function (message) {
return gutil.colors.yellow(message);
}
};
var templates = [
'src/templates/template.html'
];
var stylesheets = [
'src/css/style.css'
];
var scripts = [
'src/js/app.js',
'src/js/filters/*.js',
'src/js/services/*.js',
'src/js/directives/*.js'
];
// ---------------------------------------------------------------
// Clean
gulp.task('clean', function () {
gutil.log(color.blue('Limpando diretórios'));
return gulp.src('dist', { read: false })
.pipe(clean({ force: true }));
});
// ---------------------------------------------------------------
// Concat
gulp.task('concat:js', function () {
gutil.log(color.blue('Concatenado JS'));
return gulp.src(scripts)
.pipe(concat('veasy-table.js'))
.pipe(gulp.dest('dist/js'))
.on('error', gutil.log);
});
gulp.task('concat:css', function () {
gutil.log(color.blue('Concatenando CSS'));
return gulp.src(stylesheets)
.pipe(concat('veasy-table.css'))
.pipe(gulp.dest('dist/css'))
.on('error', gutil.log);
});
// ---------------------------------------------------------------
// Uglify
gulp.task('min:js', function () {
gutil.log(color.blue('Minificando JS'));
return gulp.src(scripts)
.pipe(uglify().on('error', gutil.log))
.pipe(concat('veasy-table.min.js'))
.pipe(gulp.dest('dist/js'))
.on('error', gutil.log);
});
gulp.task('min:css', function () {
gutil.log(color.blue('Minificando CSS'));
return gulp.src(stylesheets)
.pipe(minifyCss().on('error', gutil.log))
.pipe(concat('veasy-table.min.css'))
.pipe(gulp.dest('dist/css'))
.on('error', gutil.log);
});
gulp.task('min:html', function () {
gutil.log(color.blue('Minificando HTML'));
gulp.src(templates)
.pipe(minifyHtml({
collapseBooleanAttributes: true,
collapseWhitespace: true,
removeAttributeQuotes: true,
removeComments: true,
removeEmptyAttributes: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true
}))
.pipe(ngHtml2Js({
moduleName: 'veasy.table.templates',
}))
.pipe(uglify())
.pipe(concat('veasy-table-tpls.min.js'))
.pipe(gulp.dest('dist/js'))
.on('error', gutil.log);
});
// ---------------------------------------------------------------
// Principal
gulp.task('dist', function () {
gutil.log(color.blue('Compilando em modo de distribuição'));
sequence('clean', 'concat:js', 'concat:css', 'min:js', 'min:css', 'min:html');
});
gulp.task('dev', function () {
gulp.watch('src/**/*', ['dist']);
});