@@ -3,52 +3,75 @@ module.exports = function (grunt)
3
3
{
4
4
"use strict" ;
5
5
6
+ /* Hint: Using grunt-strip-code to remove comments from the release file */
7
+
6
8
grunt . initConfig ( {
7
9
pkg : grunt . file . readJSON ( 'package.json' ) ,
8
10
concat : {
11
+ options : {
12
+ separator : '\r\n\r\n' ,
13
+ banner : '/*! <%= "\\r\\n * " + pkg.title %> v<%= pkg.version %> - <%= grunt.template.today("mm/dd/yyyy") + "\\r\\n" %>' +
14
+ ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %> <%= (pkg.homepage ? "(" + pkg.homepage + ")" : "") + "\\r\\n" %>' +
15
+ ' * Licensed under <%= pkg.licenses[0].type + " " + pkg.licenses[0].url + "\\r\\n */\\r\\n" %>' +
16
+ ';(function ($, undefined)\r\n{\r\n' ,
17
+ footer : '\r\n})(jQuery);'
18
+ } ,
9
19
dist : {
10
20
files : {
11
- 'dist/jquery.steps.js' : [ 'jquery.steps.js' ]
21
+ '<%= pkg.folders.dist %>/jquery.steps.js' : [
22
+ '<%= pkg.folders.src %>/privates.js' ,
23
+ '<%= pkg.folders.src %>/publics.js' ,
24
+ '<%= pkg.folders.src %>/enums.js' ,
25
+ '<%= pkg.folders.src %>/model.js' ,
26
+ '<%= pkg.folders.src %>/defaults.js' ,
27
+ '<%= pkg.folders.src %>/helper.js'
28
+ ]
12
29
}
13
30
}
14
31
} ,
15
- uglify : {
16
- options : {
17
- preserveComments : false ,
18
- banner : '/*! <%= "\\r\\n * " + pkg.name %> v<%= pkg.version %> - <%= grunt.template.today("mm/dd/yyyy") + "\\r\\n" %>' +
19
- ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %> <%= (pkg.homepage ? "(" + pkg.homepage + ")" : "") + "\\r\\n" %>' +
20
- ' * Licensed under <%= pkg.licenses[0].type + " " + pkg.licenses[0].url + "\\r\\n */\\r\\n" %>'
21
- } ,
32
+ "regex-replace" : {
22
33
all : {
23
- files : {
24
- 'dist/jquery.steps.min.js' : [ 'dist/jquery.steps.js' ]
25
- }
34
+ src : [ '<%= pkg.folders.dist %>/jquery.steps.js' ] ,
35
+ actions : [
36
+ {
37
+ name : 'multiLineComments' ,
38
+ search : / \/ \* [ ^ ! ] ( .| \r | \n ) * ?\* \/ \r \n ? / gim,
39
+ replace : ''
40
+ } ,
41
+ {
42
+ name : 'singleLineComment' ,
43
+ search : / ^ \s * ?[ ^ h t t p : \/ \/ ] \/ \/ .* \r \n ? / gi,
44
+ replace : ''
45
+ } ,
46
+ {
47
+ name : 'singleLineCommentSameLine' ,
48
+ search : / [ ^ h t t p : \/ \/ ] \/ \/ .* / gi,
49
+ replace : ''
50
+ }
51
+ ]
26
52
}
27
53
} ,
28
54
compress : {
29
55
main : {
30
56
options : {
31
- archive : 'dist/ <%= pkg.name %>-<%= pkg.version %>.zip'
57
+ archive : '<%= pkg.folders.dist %>/jquery.steps -<%= pkg.version %>.zip'
32
58
} ,
33
59
files : [
34
- {
35
- src : [
36
- 'README.md' ,
37
- /*'changelog.txt',*/
38
- 'docs/**/*.*' ,
39
- 'demo/**/*.*' ,
40
- 'lib/*.*' ,
41
- 'test/**/*.*'
42
- ]
43
- } ,
44
- {
45
- flatten : true ,
46
- src : [ 'dist/*.js' ] ,
47
- filter : 'isFile'
48
- }
60
+ { flatten : true , expand : true , src : [ '<%= pkg.folders.dist %>/*.js' ] , dest : '/' }
49
61
]
50
62
}
51
63
} ,
64
+ uglify : {
65
+ options : {
66
+ preserveComments : 'some' ,
67
+ report : 'gzip'
68
+ } ,
69
+ all : {
70
+ files : {
71
+ '<%= pkg.folders.dist %>/jquery.steps.min.js' : [ '<%= pkg.folders.dist %>/jquery.steps.js' ]
72
+ }
73
+ }
74
+ } ,
52
75
qunit : {
53
76
files : [ 'test/index.html' ]
54
77
} ,
@@ -70,9 +93,7 @@ module.exports = function (grunt)
70
93
console : true
71
94
}
72
95
} ,
73
- files : [
74
- 'jquery.steps.js'
75
- ] ,
96
+ files : [ '<%= pkg.folders.dist %>/jquery.steps.js' ] ,
76
97
test : {
77
98
options : {
78
99
globals : {
@@ -113,22 +134,27 @@ module.exports = function (grunt)
113
134
options : {
114
135
exclude : 'qunit-1.11.0.js' ,
115
136
paths : '.' ,
116
- outdir : 'docs/'
137
+ outdir : '<%= pkg.folders. docs %> /'
117
138
}
118
139
}
119
140
} ,
120
- clean : [ "dist" , "docs" ]
141
+ clean : {
142
+ api : [ "<%= pkg.folders.docs %>" ] ,
143
+ build : [ "<%= pkg.folders.dist %>" ]
144
+ }
121
145
} ) ;
122
146
123
147
grunt . loadNpmTasks ( 'grunt-contrib-jshint' ) ;
124
148
grunt . loadNpmTasks ( 'grunt-contrib-qunit' ) ;
125
149
grunt . loadNpmTasks ( 'grunt-contrib-uglify' ) ;
126
150
grunt . loadNpmTasks ( 'grunt-contrib-concat' ) ;
127
151
grunt . loadNpmTasks ( 'grunt-contrib-yuidoc' ) ;
128
- grunt . loadNpmTasks ( 'grunt-contrib-compress' ) ;
129
152
grunt . loadNpmTasks ( 'grunt-contrib-clean' ) ;
153
+ grunt . loadNpmTasks ( 'grunt-contrib-compress' ) ;
154
+ grunt . loadNpmTasks ( 'grunt-regex-replace' ) ;
130
155
131
- grunt . registerTask ( 'default' , [ 'jshint' , 'qunit' ] ) ;
132
- grunt . registerTask ( 'api' , [ 'clean' , 'yuidoc' ] ) ;
133
- grunt . registerTask ( 'release' , [ 'default' , 'api' , 'concat' , 'uglify' , 'compress' ] ) ;
156
+ grunt . registerTask ( 'default' , [ 'build' ] ) ;
157
+ grunt . registerTask ( 'api' , [ 'clean:api' , 'yuidoc' ] ) ;
158
+ grunt . registerTask ( 'build' , [ 'clean:build' , 'concat' , 'regex-replace' , 'jshint' , 'qunit' ] ) ;
159
+ grunt . registerTask ( 'release' , [ 'build' , 'api' , 'uglify' , 'compress' ] ) ;
134
160
} ;
0 commit comments