/
gulpfile.js
79 lines (66 loc) · 2.29 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
'use strict';
var gulp = require('gulp'),
less = require('gulp-less'),
livereload = require('gulp-livereload'),
browserify = require('browserify'),
source = require('vinyl-source-stream'),
uglify = require('gulp-uglify'),
concat = require('gulp-concat'),
minifyCss = require('gulp-minify-css'),
replace = require('gulp-replace');
gulp.task('less', function() {
gulp.src('assets/less/*.less')
.pipe(less())
.pipe(gulp.dest('assets/style'));
});
gulp.task('watch', function() {
livereload.listen();
gulp.watch('assets/less/*.less', ['concatcss']);
gulp.watch('assets/script/*.js', ['browserify']);
});
gulp.task('browserify', function() {
return browserify('assets/script/app.js')
.bundle()
.pipe(source('app.js'))
.pipe(gulp.dest('public/script'))
.pipe(livereload());
});
var backend = 'http://quiet-atoll-8237.herokuapp.com';
gulp.task('prepareConfig', function() {
gulp.src(['assets/templates/config.js'])
.pipe(replace(/#backend#/g, 'http://localhost:8100'))
.pipe(gulp.dest('assets/script/'));
});
gulp.task('prepareStaging', function() {
gulp.src(['assets/templates/config.js'])
.pipe(replace(/#backend#/g, 'http://192.168.99.100:8000'))
.pipe(gulp.dest('assets/script/'));
});
gulp.task('prepareRelease', function() {
gulp.src(['assets/templates/config.js'])
.pipe(replace(/#backend#/g, backend))
.pipe(gulp.dest('assets/script/'));
});
gulp.task('script', ['browserify'], function() {
return gulp.src('public/script/app.js')
.pipe(uglify())
.pipe(concat('app.min.js'))
.pipe(gulp.dest('public/script'));
});
gulp.task('concatcss', ['less'], function() {
return gulp.src(['assets/style/*.css'])
.pipe(concat('app.css'))
.pipe(gulp.dest('public/style/'))
.pipe(livereload());
});
gulp.task('css', ['less'], function() {
return gulp.src(['assets/style/*.css'])
.pipe(concat('app.min.css'))
.pipe(minifyCss())
.pipe(gulp.dest('public/style/'));
});
gulp.task('dev', ['prepareConfig', 'browserify', 'concatcss']);
gulp.task('build', ['prepareConfig', 'script', 'css']);
gulp.task('staging', ['prepareStaging', 'script', 'css']);
gulp.task('release', ['prepareRelease', 'script', 'css']);
gulp.task('default', ['dev']);