Skip to content

Commit ff72467

Browse files
committed
Grunt: Move common modules to top, along with lists of files.
1 parent 748702c commit ff72467

File tree

1 file changed

+88
-56
lines changed

1 file changed

+88
-56
lines changed

grunt.js

Lines changed: 88 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,80 @@
11
module.exports = function( grunt ) {
22

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( /\.js$/, ".min.js" ).replace( /ui\//, "minified/" ) ] = [ "<banner>", file ];
64+
});
65+
66+
cssFiles.forEach(function( file ) {
67+
minifyCSS[ "dist/" + file.replace( /\.css$/, ".min.css" ).replace( /themes\/base\//, "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+
378
function stripBanner( files ) {
479
return files.map(function( file ) {
580
return "<strip_all_banners:" + file + ">";
@@ -9,6 +84,8 @@ function stripBanner( files ) {
984
function stripDirectory( file ) {
1085
return file.replace( /.+\/(.+)$/, "$1" );
1186
}
87+
// allow access from banner template
88+
global.stripDirectory = stripDirectory;
1289

1390
function createBanner( files ) {
1491
// strip folders
@@ -21,46 +98,6 @@ function createBanner( files ) {
2198
" Licensed <%= _.pluck(pkg.licenses, 'type').join(', ') %> */";
2299
}
23100

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( /\.js$/, ".min.js" ).replace( /ui\//, "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( /\.css$/, ".min.css" ).replace( /themes\/base\//, "themes/base/minified/" ) ] = [ "<banner>", file ];
62-
});
63-
64101
grunt.initConfig({
65102
pkg: "<json:package.json>",
66103
files: {
@@ -324,16 +361,15 @@ grunt.registerMultiTask( "zip", "Create a zip file for release", function() {
324361
// var files = grunt.file.expandFiles( "dist/" + this.file.src + "/**/*" );
325362
// grunt.log.writeln( "Creating zip file " + this.file.dest );
326363

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 );
337373

338374
var done = this.async();
339375
var dest = this.file.dest;
@@ -357,8 +393,8 @@ grunt.registerMultiTask( "zip", "Create a zip file for release", function() {
357393

358394
grunt.registerMultiTask( "md5", "Create list of md5 hashes for CDN uploads", function() {
359395
// 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 );
362398
}
363399
var crypto = require( "crypto" );
364400
var dir = this.file.src + "/";
@@ -399,8 +435,6 @@ grunt.registerTask( "download_docs", function() {
399435
dest: docsDir + '/effect-' + widget.toLowerCase() + '.html'
400436
};
401437
}));
402-
var fs = require( "fs" );
403-
var request = require( "request" );
404438
grunt.file.mkdir( "dist/docs" );
405439
grunt.utils.async.forEach( files, function( file, done ) {
406440
var out = fs.createWriteStream( file.dest );
@@ -411,8 +445,6 @@ grunt.registerTask( "download_docs", function() {
411445

412446
grunt.registerTask( "download_themes", function() {
413447
// var AdmZip = require('adm-zip');
414-
var fs = require( "fs" );
415-
var request = require( "request" );
416448
var done = this.async();
417449
var themes = grunt.file.read( "build/themes" ).split(",");
418450
var requests = 0;

0 commit comments

Comments
 (0)