mirror of
https://github.com/videojs/video.js.git
synced 2025-01-17 10:46:00 +02:00
56 lines
1.5 KiB
JavaScript
56 lines
1.5 KiB
JavaScript
module.exports = function(grunt) {
|
|
grunt.registerMultiTask('minify', 'Minify JS files using Closure Compiler.', function() {
|
|
var done = this.async();
|
|
var exec = require('child_process').exec;
|
|
|
|
var externs = this.data.externs || [];
|
|
var dest = this.data.dest;
|
|
var filePatterns = [];
|
|
|
|
// Make sure deeper directories exist for compiler
|
|
grunt.file.write(dest, '');
|
|
|
|
if (this.data.sourcelist) {
|
|
filePatterns = filePatterns.concat(grunt.file.read(this.data.sourcelist).split(','));
|
|
}
|
|
if (this.data.src) {
|
|
filePatterns = filePatterns.concat(this.data.src);
|
|
}
|
|
|
|
// Build closure compiler shell command
|
|
var command = 'java -jar build/compiler/compiler.jar'
|
|
+ ' --compilation_level ADVANCED_OPTIMIZATIONS'
|
|
// + ' --formatting=pretty_print'
|
|
+ ' --js_output_file=' + dest
|
|
+ ' --create_source_map ' + dest + '.map --source_map_format=V3'
|
|
+ ' --jscomp_warning=checkTypes --warning_level=VERBOSE'
|
|
+ ' --output_wrapper "(function() {%output%})();"';
|
|
//@ sourceMappingURL=video.js.map
|
|
|
|
// Add each js file
|
|
grunt.file.expand(filePatterns).forEach(function(file){
|
|
command += ' --js='+file;
|
|
});
|
|
|
|
// Add externs
|
|
externs.forEach(function(extern){
|
|
command += ' --externs='+extern;
|
|
});
|
|
|
|
// Run command
|
|
exec(command, { maxBuffer: 500*1024 }, function(err, stdout, stderr){
|
|
|
|
if (err) {
|
|
grunt.warn(err);
|
|
done(false);
|
|
}
|
|
|
|
if (stdout) {
|
|
grunt.log.writeln(stdout);
|
|
}
|
|
|
|
done();
|
|
});
|
|
});
|
|
}
|