1
+ module . exports = function ( grunt ) {
2
+ "use strict" ;
3
+
4
+ grunt . loadNpmTasks ( 'grunt-contrib-jshint' ) ;
5
+ grunt . loadNpmTasks ( 'grunt-contrib-watch' ) ;
6
+ grunt . loadNpmTasks ( 'grunt-contrib-concat' ) ;
7
+ grunt . loadNpmTasks ( 'grunt-contrib-clean' ) ;
8
+ grunt . loadNpmTasks ( 'grunt-file-append' ) ;
9
+ grunt . loadNpmTasks ( 'grunt-contrib-uglify' ) ;
10
+ grunt . loadNpmTasks ( 'grunt-contrib-compass' ) ;
11
+ grunt . loadNpmTasks ( 'grunt-contrib-copy' ) ;
12
+ grunt . loadNpmTasks ( 'grunt-contrib-cssmin' ) ;
13
+ grunt . loadNpmTasks ( 'grunt-concat-css' ) ;
14
+ require ( 'time-grunt' ) ( grunt ) ;
15
+
16
+ grunt . initConfig ( {
17
+
18
+ pkg : grunt . file . readJSON ( 'package.json' ) ,
19
+
20
+ concat : {
21
+ options : {
22
+ separator : ';'
23
+ } ,
24
+ controllers : {
25
+ src : [ 'app/src/js/init.js' , 'app/src/js/components/**/ctrl.js' ] ,
26
+ dest : 'app/dist/js/controllers.js'
27
+ } ,
28
+ directives : {
29
+ src : [ 'app/src/js/shared/directives/*.js' ] ,
30
+ dest : 'app/dist/js/directives.js'
31
+ } ,
32
+ services : {
33
+ src : [ 'app/src/js/components/**/service.js' ] ,
34
+ dest : 'app/dist/js/services.js'
35
+ } ,
36
+ filters : {
37
+ src : [ 'app/src/js/shared/filters.js' ] ,
38
+ dest : 'app/dist/js/filters.js'
39
+ }
40
+ } ,
41
+
42
+ clean : {
43
+ dist_js : {
44
+ src : [
45
+ 'app/dist/*'
46
+ ]
47
+ }
48
+ } ,
49
+
50
+ jshint : {
51
+ options : {
52
+ strict : true ,
53
+ expr : true ,
54
+ onecase : true ,
55
+ maxcomplexity : 8 ,
56
+ curly : false , //change
57
+ eqeqeq : false , //change
58
+ forin : true ,
59
+ // immed: true,
60
+ // indent : 4,
61
+ latedef : true ,
62
+ newcap : true ,
63
+ noarg : true ,
64
+ noempty : false , //change
65
+ nonew : false ,
66
+ // quotmark : true, //'single', //change
67
+ regexp : true ,
68
+ undef : true ,
69
+ // options here to override JSHint defaults
70
+ globals : {
71
+ jQuery : true ,
72
+ console : true ,
73
+ module : true ,
74
+ document : true ,
75
+ window : true ,
76
+ define : true
77
+ }
78
+ } ,
79
+ uses_defaults : [ 'Gruntfile.js' , 'app/src/js/**/*.js' ]
80
+ } ,
81
+
82
+ compass : {
83
+ src : {
84
+ options : {
85
+ sassDir : 'app/src/css/sass/' ,
86
+ cssDir : 'app/src/css/'
87
+ }
88
+ }
89
+ } ,
90
+
91
+ copy : {
92
+ src : {
93
+ files : [
94
+ { expand : true , cwd : 'app/src/' , src : [ '**' , '!css/sass/**' , '!js/components/**' , '!js/shared/**' ] , dest : 'app/dist/' }
95
+ ]
96
+ }
97
+ } ,
98
+
99
+ uglify : {
100
+ options : {
101
+ mangle : false
102
+ } ,
103
+
104
+ dist : {
105
+ files : [ {
106
+ expand : true ,
107
+ cwd : 'app/dist/js' ,
108
+ src : '**/*.js' ,
109
+ dest : 'app/dist/js'
110
+ } ]
111
+ }
112
+ } ,
113
+
114
+ watch : {
115
+ dev : {
116
+ files : [ '<%= jshint.uses_defaults %>' , 'app/src/css/sass/*.scss' ] ,
117
+ tasks : [ 'compass' , 'clean:dist_js' , 'copy' , 'concat' , 'concat_css' ]
118
+ } ,
119
+ prod : {
120
+ files : [ '<%= jshint.uses_defaults %>' , 'app/src/css/sass/*.scss' ] ,
121
+ tasks : [ 'compass' , 'clean:dist_js' , 'copy' , 'concat' , 'cssmin' , 'uglify' ]
122
+ }
123
+ } ,
124
+
125
+ concat_css : {
126
+ all : {
127
+ src : [ "app/dist/css/app.css" ] ,
128
+ dest : "app/dist/css/app.min.css"
129
+ }
130
+ } ,
131
+
132
+ cssmin : {
133
+ combine : {
134
+ files : {
135
+ 'app/dist/css/app.min.css' : [ 'app/dist/css/bootstrap-3.min.css' , 'app/dist/css/app.css' , 'app/dist/css/animations.css' , 'app/dist/css/jquery-ui.custom.min.css' , 'app/dist/css/font-awesome.css' ]
136
+ }
137
+ } ,
138
+ minify : {
139
+ src : [ 'app/dist/css/app.min.css' ] ,
140
+ dest : 'app/dist/css/app.min.css'
141
+ }
142
+ }
143
+
144
+ } ) ;
145
+
146
+ grunt . registerTask ( 'shared' , [ 'clean:dist_js' , 'compass' , 'copy' , 'concat' ] ) ;
147
+ grunt . registerTask ( 'jenkins-dev' , [ 'shared' , 'concat_css' ] ) ;
148
+ grunt . registerTask ( 'jenkins-prod' , [ 'shared' , 'uglify' , 'cssmin' ] ) ;
149
+ grunt . registerTask ( 'dev' , [ 'shared' , 'concat_css' , 'watch:dev' ] ) ;
150
+ grunt . registerTask ( 'default' , [ 'shared' , 'uglify' , 'cssmin' , 'watch:prod' ] ) ;
151
+
152
+ } ;
0 commit comments