mirror of
https://github.com/jquery/jquery-ui.git
synced 2025-01-07 20:34:24 +00:00
Build/grunt: Minify CSS files, using sqwish.
This commit is contained in:
parent
02981c7c40
commit
cc3b08df2d
53
grunt.js
53
grunt.js
@ -1,13 +1,10 @@
|
||||
/*global config:true, task:true*/
|
||||
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(', ');
|
||||
var allFiles = coreFiles.map(function(file) {
|
||||
var uiFiles = coreFiles.map(function(file) {
|
||||
return 'ui/' + file;
|
||||
}).concat(file.expand('ui/*.js').filter(function(file) {
|
||||
return coreFiles.indexOf(file.substring(3)) === -1;
|
||||
}));
|
||||
var rawList = allFiles.map(function(file) {
|
||||
return file.substring(3);
|
||||
});
|
||||
|
||||
var minify = {
|
||||
'dist/ui/minified/jquery-ui.min.js': ['<banner:meta.bannerAll>', 'dist/ui/jquery-ui.js'],
|
||||
@ -16,19 +13,23 @@ var minify = {
|
||||
function minFile(file) {
|
||||
minify['dist/' + file.replace(/\.js$/, '.min.js').replace(/ui\//, 'ui/minified/')] = ['<banner>', file];
|
||||
}
|
||||
allFiles.forEach(minFile);
|
||||
uiFiles.forEach(minFile);
|
||||
|
||||
var allI18nFiles = file.expand('ui/i18n/*.js');
|
||||
allI18nFiles.forEach(minFile);
|
||||
var i18nfiles = allI18nFiles.map(function(file) {
|
||||
return file.substring(8);
|
||||
});
|
||||
|
||||
// TODO move core to the front, theme to the end, exclude all and base
|
||||
var cssFiles = file.expand('themes/base/*.css');
|
||||
|
||||
function createBanner(files) {
|
||||
// strip folders
|
||||
var fileNames = files && files.map(function(file) {
|
||||
return file.replace(/.+\/(.+)$/, '$1');
|
||||
});
|
||||
return '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
|
||||
'<%= template.today("isoDate") %>\n' +
|
||||
'<%= pkg.homepage ? "* " + pkg.homepage + "\n" : "" %>' +
|
||||
(files ? '* Includes: ' + files.join(', ') + '\n' : '') +
|
||||
(files ? '* Includes: ' + fileNames.join(', ') + '\n' : '') +
|
||||
'* Copyright (c) <%= template.today("yyyy") %> <%= pkg.author.name %>;' +
|
||||
' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */';
|
||||
}
|
||||
@ -37,14 +38,21 @@ config.init({
|
||||
pkg: '<json:package.json>',
|
||||
meta: {
|
||||
banner: createBanner(),
|
||||
bannerAll: createBanner(rawList),
|
||||
bannerI18n: createBanner(i18nfiles)
|
||||
bannerAll: createBanner(uiFiles),
|
||||
bannerI18n: createBanner(allI18nFiles),
|
||||
bannerCSS: createBanner(cssFiles)
|
||||
},
|
||||
concat: {
|
||||
'dist/ui/jquery-ui.js': allFiles,
|
||||
'dist/ui/jquery-ui.js': uiFiles,
|
||||
'dist/ui/i18n/jquery-ui-i18n.js': 'ui/i18n/*.js'
|
||||
},
|
||||
min: minify,
|
||||
css_min: {
|
||||
dist: {
|
||||
src: ['<banner:meta.bannerCSS>'].concat(cssFiles),
|
||||
dest: 'dist/themes/base/minified/jquery-ui.min.css'
|
||||
}
|
||||
},
|
||||
zip: {
|
||||
dist: {
|
||||
src: [
|
||||
@ -107,5 +115,26 @@ task.registerBasicTask('zip', 'Create a zip file for release', function(data) {
|
||||
log.writeln("Wrote " + files.length + " files to " + data.dest);
|
||||
});
|
||||
|
||||
task.registerBasicTask( 'css_min', 'Minify CSS files with Sqwish.', function( data ) {
|
||||
var files = file.expand( data.src );
|
||||
// Get banner, if specified. It would be nice if UglifyJS supported ignoring
|
||||
// all comments matching a certain pattern, like /*!...*/, but it doesn't.
|
||||
var banner = task.directive(files[0], function() { return null; });
|
||||
if (banner === null) {
|
||||
banner = '';
|
||||
} else {
|
||||
files.shift();
|
||||
}
|
||||
var max = task.helper( 'concat', files );
|
||||
// Concat banner + minified source.
|
||||
var min = banner + require('sqwish').minify( max, false );
|
||||
file.write( data.dest, min );
|
||||
if ( task.hadErrors() ) {
|
||||
return false;
|
||||
}
|
||||
log.writeln( 'File "' + data.dest + '" created.' );
|
||||
task.helper( 'min_max_info', min, max );
|
||||
});
|
||||
|
||||
task.registerTask('default', 'lint qunit');
|
||||
task.registerTask('release', 'concat min zip');
|
||||
|
@ -27,7 +27,8 @@
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"grunt": "0.2.x",
|
||||
"adm-zip": "0.1.x"
|
||||
"adm-zip": "0.1.x",
|
||||
"sqwish": "0.2.x"
|
||||
},
|
||||
"keywords": []
|
||||
}
|
Loading…
Reference in New Issue
Block a user