1
- // Build configurations.
2
1
module . exports = function ( grunt ) {
3
2
grunt . loadNpmTasks ( 'grunt-karma' ) ;
4
- grunt . loadNpmTasks ( 'grunt-babel' ) ;
5
3
grunt . loadNpmTasks ( 'grunt-contrib-connect' ) ;
6
4
grunt . loadNpmTasks ( 'grunt-contrib-watch' ) ;
7
5
grunt . loadNpmTasks ( 'grunt-contrib-jshint' ) ;
8
- grunt . loadNpmTasks ( 'grunt-contrib-concat' ) ;
9
- grunt . loadNpmTasks ( 'grunt-contrib-uglify' ) ;
6
+ grunt . loadNpmTasks ( 'grunt-contrib-copy' ) ;
7
+ grunt . loadNpmTasks ( 'grunt-contrib-clean' ) ;
8
+ grunt . loadNpmTasks ( 'grunt-webpack' ) ;
9
+
10
+ var webpackSettings = require ( './webpack.config.js' ) ;
10
11
11
12
grunt . initConfig ( {
12
- packageBower : grunt . file . readJSON ( './bower.json' ) ,
13
- timestamp : ( new Date ( ) ) . toISOString ( ) ,
14
- releaseData : '/*!\n' +
15
- ' * <%= packageBower.name %>\n' +
16
- ' * <%= packageBower.homepage %>\n' +
17
- ' * Version: <%= packageBower.version %> -- <%= timestamp %>\n' +
18
- ' * License: <%= packageBower.license %>\n' +
19
- ' */\n' ,
20
13
connect : {
21
14
app : {
22
15
options : {
23
- base : './' ,
24
- middleware : require ( './server/middleware' ) ,
25
- port : 5001
16
+ port : 5005 ,
17
+ base : './demo' ,
18
+ middleware : function ( connect , options , middlewares ) {
19
+ middlewares . unshift ( function ( req , res , next ) {
20
+ var files = [ 'ui-scroll.js' , 'ui-scroll-grid.js' , 'ui-scroll.js.map' , 'ui-scroll-grid.js.map' ] ;
21
+ for ( var i = 0 ; i < files . length ; i ++ ) {
22
+ if ( req . url === '/dist/' + files [ i ] ) {
23
+ res . end ( grunt . file . read ( './temp/' + files [ i ] ) ) ;
24
+ }
25
+ }
26
+ next ( ) ;
27
+ } ) ;
28
+ return middlewares ;
29
+ }
26
30
}
27
31
}
28
32
} ,
@@ -35,108 +39,66 @@ module.exports = function (grunt) {
35
39
files : [
36
40
'src/**/*.js'
37
41
] ,
38
- tasks : 'buildWatcher '
42
+ tasks : 'webpack:default '
39
43
}
40
44
} ,
41
45
karma : {
42
- unit : {
43
- options : {
44
- autoWatch : true ,
45
- colors : true ,
46
- configFile : './test/karma.conf.js' ,
47
- keepalive : true ,
48
- port : 8082 ,
49
- runnerPort : 9100
50
- }
46
+ options : {
47
+ configFile : './test/karma.conf.js' ,
48
+ runnerPort : 9100
51
49
} ,
52
- travis : {
50
+ default : { } ,
51
+ compressed : {
53
52
options : {
54
- colors : true ,
55
- configFile : './test/karma.conf.js' ,
56
- runnerPort : 9100 ,
53
+ files : require ( './test/karma.conf.files.js' ) . compressedFiles ,
54
+ port : 9876 ,
55
+ autoWatch : false ,
56
+ keepalive : false ,
57
57
singleRun : true
58
58
}
59
59
}
60
60
} ,
61
- babel : {
62
- options : {
63
- //sourceMap: true,
64
- babelrc : false ,
65
- presets : [ 'es2015' ]
61
+ webpack : {
62
+ options : webpackSettings . config ,
63
+ default : { } ,
64
+ compressed : {
65
+ plugins : webpackSettings . compressedPlugins ,
66
+ output : {
67
+ filename : '[name].min.js'
68
+ }
69
+ }
70
+ } ,
71
+ clean : {
72
+ temp : [ 'temp' ]
73
+ } ,
74
+ copy : {
75
+ sources : {
76
+ files : [
77
+ { expand : true , src : [ '*' ] , cwd : 'temp' , dest : 'dist/' } ,
78
+ ]
66
79
} ,
67
- dist : {
80
+ jqLiteExtrasFake : {
68
81
files : [
82
+ { expand : true , src : [ 'ui-scroll-jqlite.js' ] , cwd : 'src' , dest : 'dist/' } ,
69
83
{
70
- expand : true ,
71
- cwd : 'src/' ,
72
- src : [ '**/*.js' ] ,
73
- dest : 'temp/' ,
74
- ext : '.js'
84
+ expand : true , src : [ 'ui-scroll-jqlite.js' ] , cwd : 'src' , dest : 'dist/' , rename : function ( dest , src ) {
85
+ return dest + src . replace ( / \. j s $ / , ".min.js" ) ;
86
+ }
75
87
}
76
88
]
77
89
}
78
90
} ,
79
- concat : {
80
- options : {
81
- banner : '<%= releaseData %> \n\n (function () {\n' ,
82
- footer : '}());' ,
83
- stripBanners : true ,
84
- process : function ( src , filepath ) {
85
- var singleQuotes , strings ;
86
- console . log ( "Processing " + filepath + " ..." ) ;
87
- strings = / ( " (?: (?: \\ " ) | [ ^ " ] ) * " ) / g;
88
- singleQuotes = / ' / g;
89
- return src . replace ( strings , function ( match ) {
90
- var result ;
91
- console . log ( "match: " + match ) ;
92
- result = "'" + match . substring ( 1 , match . length - 1 ) . replace ( singleQuotes , "\\'" ) + "'" ;
93
- console . log ( "replaced with: " + result ) ;
94
- return result ;
95
- } ) ;
96
- }
97
- } ,
98
- dynamic_mappings : {
99
- files : {
100
- 'dist/ui-scroll.js' : [ './temp/**/ui-scroll.js' ] ,
101
- 'dist/ui-scroll-grid.js' : [ './temp/**/ui-scroll-grid.js' ] ,
102
- 'dist/ui-scroll-jqlite.js' : [ './temp/**/ui-scroll-jqlite.js' ]
103
- }
104
- }
105
- } ,
106
- uglify : {
107
- options : {
108
- banner : '<%= releaseData %>'
109
- } ,
110
- common : {
111
- files : {
112
- './dist/ui-scroll.min.js' : [ './dist/ui-scroll.js' ] ,
113
- './dist/ui-scroll-grid.min.js' : [ './dist/ui-scroll-grid.js' ] ,
114
- './dist/ui-scroll-jqlite.min.js' : [ './dist/ui-scroll-jqlite.js' ]
115
- }
116
- }
117
- } ,
118
91
jshint : {
119
- dist : {
92
+ sources : {
120
93
files : {
121
94
src : [
122
- './dist/ui-scroll.js' ,
123
- './dist/ui-scroll-jqlite.js'
124
- ]
125
- } ,
126
- options : {
127
- jshintrc : '.jshintrc'
128
- }
129
- } ,
130
- src : {
131
- files : {
132
- src : [
133
- './src/ui-scroll.js' ,
134
- './src/ui-scroll-jqlite.js'
95
+ './src/*.js' ,
96
+ './src/modules/*.js'
135
97
]
136
98
} ,
137
99
options : grunt . util . _ . extend ( { } , grunt . file . readJSON ( '.jshintrc' ) , grunt . file . readJSON ( './src/.jshintrc' ) )
138
100
} ,
139
- test : {
101
+ tests : {
140
102
files : {
141
103
src : [ './test/*Spec.js' ]
142
104
} ,
@@ -163,39 +125,33 @@ module.exports = function (grunt) {
163
125
}
164
126
} ) ;
165
127
166
- /**
167
- * Starts a web server
168
- * Enter the following command at the command line to execute this task:
169
- * grunt server
170
- */
171
128
grunt . registerTask ( 'server' , [
129
+ 'webpack:default' ,
172
130
'connect' ,
173
131
'watch'
174
132
] ) ;
175
133
176
134
grunt . registerTask ( 'default' , [ 'server' ] ) ;
177
135
178
136
grunt . registerTask ( 'test' , [
179
- 'babel' ,
180
- 'karma:unit'
181
- ] ) ;
182
-
183
- grunt . registerTask ( 'buildWatcher' , [
184
- 'babel' ,
185
- 'concat'
137
+ 'clean:temp' ,
138
+ 'webpack:default' ,
139
+ 'karma:default'
186
140
] ) ;
187
141
188
142
grunt . registerTask ( 'build' , [
189
- 'jshint:test' ,
190
- 'jshint:src' ,
191
- 'babel' ,
192
- 'karma:travis' ,
193
- 'concat' ,
194
- 'uglify:common'
143
+ 'jshint:tests' ,
144
+ 'jshint:sources' ,
145
+ 'clean:temp' ,
146
+ 'webpack:compressed' ,
147
+ 'karma:compressed' ,
148
+ 'webpack:default' ,
149
+ 'copy:sources' ,
150
+ 'copy:jqLiteExtrasFake'
195
151
] ) ;
196
152
197
153
grunt . registerTask ( 'travis' , [
198
- 'babel ' ,
199
- 'karma:travis '
154
+ 'webpack:compressed ' ,
155
+ 'karma:compressed '
200
156
] ) ;
201
157
} ;
0 commit comments