forked from donkeycode/ionic-tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
118 lines (102 loc) · 3.18 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
107
108
109
110
111
112
113
114
115
116
117
var gulp = require('gulp');
var ngBuild = require('ng-build');
var wiredep = require('wiredep');
var bower = require('bower');
var queue = require('streamqueue');
var del = require('del');
var rename = require('gulp-rename');
var ngAnnotate = require('gulp-ng-annotate');
var cache = require('gulp-cached');
var plumber = require('gulp-plumber');
var remember = require('gulp-remember');
var jscs = require('gulp-jscs');
var path = require('path');
var ngBlock = ngBuild.ngBlock;
var ngIndex = ngBuild.ngIndex;
var ngLint = ngBuild.ngLint;
var ngModule = ngBuild.ngModule;
var ngProvider = ngBuild.ngProvider;
var ngStore = ngBuild.ngStore;
var ngStyle = ngBuild.ngStyle;
var ngTemplate = ngBuild.ngTemplate;
var ngWire = ngBuild.ngWire;
var ngWrap = ngBuild.ngWrap;
process.env.ENV = process.env.ENV || 'dev';
gulp.task('default', ['build']);
var clean = function clean(what) {
var taskName = 'clean:' + what;
gulp.task(taskName, function(done) {
del('build/' + what, done);
});
return taskName;
};
gulp.task('bower', function(done) {
bower.commands.install().on('end', function() { done(); });
});
gulp.task('ng-modules', function() {
return gulp
.src('src/**/module.json')
.pipe(plumber())
.pipe(cache('modules'))
.pipe(ngModule({ prefix: 'dc' }))
.pipe(ngStore.register('modules'))
.pipe(remember('modules'));
});
gulp.task('ng-templates', function() {
return gulp
.src('src/**/*.template.html')
.pipe(plumber())
.pipe(cache('templates'))
.pipe(ngTemplate())
.pipe(ngStore.register('templates'))
.pipe(remember('templates'));
});
gulp.task('ng-blocks', function() {
return gulp
.src([
'src/**/*.config.js',
'src/**/*.run.js'
])
.pipe(plumber())
.pipe(cache('blocks'))
.pipe(ngBlock())
.pipe(ngStore.register('blocks'))
.pipe(remember('blocks'));
});
gulp.task('ng-providers', function() {
return gulp
.src([
'src/**/*.provider.js',
'src/**/*.constant.json',
'src/**/*.factory.js',
'src/**/*.directive.js',
'src/**/*.filter.js',
'src/**/*.controller.js'
])
.pipe(plumber())
.pipe(cache('providers'))
.pipe(ngProvider())
.pipe(ngStore.register('providers'))
.pipe(remember('providers'));
});
gulp.task('ng-scripts', [clean('js'), 'ng-modules', 'ng-templates', 'ng-blocks', 'ng-providers'], function() {
return ngStore.stream()
.pipe(plumber())
.pipe(cache('scripts'))
.pipe(ngWire())
.pipe(ngWrap())
.pipe(ngAnnotate())
.pipe(jscs())
.pipe(remember('scripts'))
.pipe(gulp.dest('build/js/'));
});
gulp.task('ng-lint', ['ng-modules', 'ng-blocks', 'ng-providers'], function() {
return ngStore.stream()
.pipe(plumber())
.pipe(ngLint())
.pipe(ngLint.reporter());
});
gulp.task('build', ['bower', 'ng-scripts']);
gulp.task('dev', ['build'], function() {
gulp.watch('src/**/*.{html,js,json}', ['ng-scripts']);
});