-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathgulpfile.js
40 lines (35 loc) · 1.39 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
var gulp = require('gulp'),
gutil = require('gulp-util'),
jshint = require('gulp-jshint'),
concat = require('gulp-concat'),
bower = require('gulp-bower'),
uglify = require('gulp-uglify'),
sourcemaps = require('gulp-sourcemaps');
// define a tarefa padrao e adiciona a tarefa watch para ela
gulp.task('default', ['watch']);
gulp.task('build', ['bower', 'build-js']);
// configura a tarefa jshint
gulp.task('jshint', function () {
return gulp.src('src/main/resources/public/app/**/*.js')
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish'));
});
// configura quais arquivos monitorar e qual tarefa chamar quando ouver alterações neles
gulp.task('watch', function () {
gulp.watch('src/main/resources/public/app/**/*.js', ['build-js']);
});
/** configura quais arquivos serao concatenados e minifica esses arquivos caso encontre
* a propriedade --type production e escreve tudo isso no arquivo all.js
* */
gulp.task('build-js', ['jshint'], function() {
return gulp.src('src/main/resources/public/app/**/*.js')
.pipe(sourcemaps.init())
.pipe(concat('app.js'))
//only uglify if gulp is ran with '--type production'
.pipe(gutil.env.type === 'production' ? uglify() : gutil.noop())
.pipe(sourcemaps.write())
.pipe(gulp.dest('src/main/resources/public/dist/js'));
});
gulp.task('bower', function() {
return bower();
});