1
1
module . exports = function ( grunt ) {
2
2
3
+ var // modules
4
+ fs = require ( "fs" ) ,
5
+ path = require ( "path" ) ,
6
+ request = require ( "request" ) ,
7
+ util = require ( "util" ) ,
8
+ inspect = util . inspect ,
9
+
10
+ // files
11
+ coreFiles = [
12
+ "jquery.ui.core.js" ,
13
+ "jquery.ui.widget.js" ,
14
+ "jquery.ui.mouse.js" ,
15
+ "jquery.ui.draggable.js" ,
16
+ "jquery.ui.droppable.js" ,
17
+ "jquery.ui.resizable.js" ,
18
+ "jquery.ui.selectable.js" ,
19
+ "jquery.ui.sortable.js" ,
20
+ "jquery.effects.core.js"
21
+ ] ,
22
+
23
+ uiFiles = coreFiles . map ( function ( file ) {
24
+ return "ui/" + file ;
25
+ } ) . concat ( grunt . file . expandFiles ( "ui/*.js" ) . filter ( function ( file ) {
26
+ return coreFiles . indexOf ( file . substring ( 3 ) ) === - 1 ;
27
+ } ) ) ,
28
+
29
+ allI18nFiles = grunt . file . expandFiles ( "ui/i18n/*.js" ) ,
30
+
31
+ cssFiles = [
32
+ "core" ,
33
+ "accordion" ,
34
+ "autocomplete" ,
35
+ "button" ,
36
+ "datepicker" ,
37
+ "dialog" ,
38
+ "menu" ,
39
+ "progressbar" ,
40
+ "resizable" ,
41
+ "selectable" ,
42
+ "slider" ,
43
+ "spinner" ,
44
+ "tabs" ,
45
+ "tooltip" ,
46
+ "theme"
47
+ ] . map ( function ( component ) {
48
+ return "themes/base/jquery.ui." + component + ".css" ;
49
+ } ) ,
50
+
51
+ // minified files
52
+ minify = {
53
+ "dist/jquery-ui.min.js" : [ "<banner:meta.bannerAll>" , "dist/jquery-ui.js" ] ,
54
+ "dist/i18n/jquery-ui-i18n.min.js" : [ "<banner:meta.bannerI18n>" , "dist/i18n/jquery-ui-i18n.js" ]
55
+ } ,
56
+
57
+ minifyCSS = {
58
+ "dist/jquery-ui.min.css" : "dist/jquery-ui.css"
59
+ } ;
60
+
61
+
62
+ uiFiles . concat ( allI18nFiles ) . forEach ( function ( file ) {
63
+ minify [ "dist/" + file . replace ( / \. j s $ / , ".min.js" ) . replace ( / u i \/ / , "minified/" ) ] = [ "<banner>" , file ] ;
64
+ } ) ;
65
+
66
+ cssFiles . forEach ( function ( file ) {
67
+ minifyCSS [ "dist/" + file . replace ( / \. c s s $ / , ".min.css" ) . replace ( / t h e m e s \/ b a s e \/ / , "themes/base/minified/" ) ] = [ "<banner>" , file ] ;
68
+ } ) ;
69
+
70
+
71
+ // csslint and cssmin tasks
72
+ grunt . loadNpmTasks ( "grunt-css" ) ;
73
+
74
+ grunt . registerHelper ( "strip_all_banners" , function ( filepath ) {
75
+ return grunt . file . read ( filepath ) . replace ( / ^ \s * \/ \* [ \s \S ] * ?\* \/ \s * / g, "" ) ;
76
+ } ) ;
77
+
3
78
function stripBanner ( files ) {
4
79
return files . map ( function ( file ) {
5
80
return "<strip_all_banners:" + file + ">" ;
@@ -9,6 +84,8 @@ function stripBanner( files ) {
9
84
function stripDirectory ( file ) {
10
85
return file . replace ( / .+ \/ ( .+ ) $ / , "$1" ) ;
11
86
}
87
+ // allow access from banner template
88
+ global . stripDirectory = stripDirectory ;
12
89
13
90
function createBanner ( files ) {
14
91
// strip folders
@@ -21,46 +98,6 @@ function createBanner( files ) {
21
98
" Licensed <%= _.pluck(pkg.licenses, 'type').join(', ') %> */" ;
22
99
}
23
100
24
- // a working grunt.loadNpmTasks replacement
25
- // gets us csslint and cssmin tasks
26
- grunt . loadNpmTasks ( 'grunt-css' ) ;
27
-
28
- // allow access from banner template
29
- global . stripDirectory = stripDirectory ;
30
- grunt . registerHelper ( "strip_all_banners" , function ( filepath ) {
31
- return grunt . file . read ( filepath ) . replace ( / ^ \s * \/ \* [ \s \S ] * ?\* \/ \s * / g, "" ) ;
32
- } ) ;
33
- var inspect = require ( "util" ) . inspect ;
34
-
35
- var coreFiles = "jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.effects.core.js" . split ( ", " ) ;
36
- var uiFiles = coreFiles . map ( function ( file ) {
37
- return "ui/" + file ;
38
- } ) . concat ( grunt . file . expandFiles ( "ui/*.js" ) . filter ( function ( file ) {
39
- return coreFiles . indexOf ( file . substring ( 3 ) ) === - 1 ;
40
- } ) ) ;
41
-
42
- var minify = {
43
- "dist/jquery-ui.min.js" : [ "<banner:meta.bannerAll>" , "dist/jquery-ui.js" ] ,
44
- "dist/i18n/jquery-ui-i18n.min.js" : [ "<banner:meta.bannerI18n>" , "dist/i18n/jquery-ui-i18n.js" ]
45
- } ;
46
- function minFile ( file ) {
47
- minify [ "dist/" + file . replace ( / \. j s $ / , ".min.js" ) . replace ( / u i \/ / , "minified/" ) ] = [ "<banner>" , file ] ;
48
- }
49
- uiFiles . forEach ( minFile ) ;
50
-
51
- var allI18nFiles = grunt . file . expandFiles ( "ui/i18n/*.js" ) ;
52
- allI18nFiles . forEach ( minFile ) ;
53
-
54
- var cssFiles = "core accordion autocomplete button datepicker dialog menu progressbar resizable selectable slider spinner tabs tooltip theme" . split ( " " ) . map ( function ( component ) {
55
- return "themes/base/jquery.ui." + component + ".css" ;
56
- } ) ;
57
- var minifyCSS = {
58
- "dist/jquery-ui.min.css" : "dist/jquery-ui.css"
59
- } ;
60
- cssFiles . forEach ( function ( file ) {
61
- minifyCSS [ "dist/" + file . replace ( / \. c s s $ / , ".min.css" ) . replace ( / t h e m e s \/ b a s e \/ / , "themes/base/minified/" ) ] = [ "<banner>" , file ] ;
62
- } ) ;
63
-
64
101
grunt . initConfig ( {
65
102
pkg : "<json:package.json>" ,
66
103
files : {
@@ -324,16 +361,15 @@ grunt.registerMultiTask( "zip", "Create a zip file for release", function() {
324
361
// var files = grunt.file.expandFiles( "dist/" + this.file.src + "/**/*" );
325
362
// grunt.log.writeln( "Creating zip file " + this.file.dest );
326
363
327
- // var fs = require( "fs" );
328
- // var AdmZip = require( "adm-zip" );
329
- // var zip = new AdmZip();
330
- // files.forEach(function( file ) {
331
- // grunt.verbose.writeln( "Zipping " + file );
332
- // // rewrite file names from dist folder (created by build), drop the /dist part
333
- // zip.addFile(file.replace(/^dist/, "" ), fs.readFileSync( file ) );
334
- // });
335
- // zip.writeZip( "dist/" + this.file.dest );
336
- // grunt.log.writeln( "Wrote " + files.length + " files to " + this.file.dest );
364
+ //var AdmZip = require( "adm-zip" );
365
+ //var zip = new AdmZip();
366
+ //files.forEach(function( file ) {
367
+ // grunt.verbose.writeln( "Zipping " + file );
368
+ // // rewrite file names from dist folder (created by build), drop the /dist part
369
+ // zip.addFile(file.replace(/^dist/, "" ), fs.readFileSync( file ) );
370
+ //});
371
+ //zip.writeZip( "dist/" + this.file.dest );
372
+ //grunt.log.writeln( "Wrote " + files.length + " files to " + this.file.dest );
337
373
338
374
var done = this . async ( ) ;
339
375
var dest = this . file . dest ;
@@ -357,8 +393,8 @@ grunt.registerMultiTask( "zip", "Create a zip file for release", function() {
357
393
358
394
grunt . registerMultiTask ( "md5" , "Create list of md5 hashes for CDN uploads" , function ( ) {
359
395
// remove dest file before creating it, to make sure itself is not included
360
- if ( require ( " path" ) . existsSync ( this . file . dest ) ) {
361
- require ( "fs" ) . unlinkSync ( this . file . dest ) ;
396
+ if ( path . existsSync ( this . file . dest ) ) {
397
+ fs . unlinkSync ( this . file . dest ) ;
362
398
}
363
399
var crypto = require ( "crypto" ) ;
364
400
var dir = this . file . src + "/" ;
@@ -399,8 +435,6 @@ grunt.registerTask( "download_docs", function() {
399
435
dest : docsDir + '/effect-' + widget . toLowerCase ( ) + '.html'
400
436
} ;
401
437
} ) ) ;
402
- var fs = require ( "fs" ) ;
403
- var request = require ( "request" ) ;
404
438
grunt . file . mkdir ( "dist/docs" ) ;
405
439
grunt . utils . async . forEach ( files , function ( file , done ) {
406
440
var out = fs . createWriteStream ( file . dest ) ;
@@ -411,8 +445,6 @@ grunt.registerTask( "download_docs", function() {
411
445
412
446
grunt . registerTask ( "download_themes" , function ( ) {
413
447
// var AdmZip = require('adm-zip');
414
- var fs = require ( "fs" ) ;
415
- var request = require ( "request" ) ;
416
448
var done = this . async ( ) ;
417
449
var themes = grunt . file . read ( "build/themes" ) . split ( "," ) ;
418
450
var requests = 0 ;
0 commit comments