From 15c0dc3768febced6ccca340bb2f0a569ef1e9be Mon Sep 17 00:00:00 2001 From: kangax Date: Sun, 27 Nov 2011 23:55:36 -0500 Subject: [PATCH] `node build.js` now does automatic minification (minifier can be changed via "minifier" option) --- build.js | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/build.js b/build.js index 3e578ea7..c3f16c01 100644 --- a/build.js +++ b/build.js @@ -1,9 +1,20 @@ var fs = require('fs'), - childProcess = require('child_process'); + exec = require('child_process').exec; var modules = process.argv.slice(2)[0]; modules = modules ? modules.split('=')[1].split(',') : [ ]; +var minifier = process.argv.slice(3)[0]; +var mininfierCmd; + +minifier = minifier ? minifier.split('=')[1] : 'yui'; +if (minifier === 'yui') { + mininfierCmd = 'java -jar lib/yuicompressor-2.4.2.jar dist/all.js -o dist/all.min.js'; +} +else if (minifier === 'closure') { + mininfierCmd = 'java -jar lib/google_closure_compiler.jar --js dist/all.js --js_output_file dist/all.min.js'; +} + var includeAllModules = modules.length === 1 && modules[0] === 'ALL'; var distFileContents = ''; @@ -63,7 +74,9 @@ var filesToInclude = [ 'src/intersection.class.js', 'src/color.class.js', - 'src/canvas.class.js', + 'src/static_canvas.class.js', + ifSpecifiedInclude('interaction', 'src/canvas.class.js'), + 'src/canvas.animation.js', ifSpecifiedInclude('serialization', 'src/canvas.serialization.js'), @@ -93,7 +106,21 @@ appendFileContents(filesToInclude, function() { if (err) { console.log(err); throw err; - }; - console.log('All done'); + } + + console.log('Built distribution to dist/all.js'); + + exec(mininfierCmd, function (error, output) { + if (!error) { + console.log('Minified using', minifier, 'to dist/all.min.js'); + } + exec('gzip -c dist/all.min.js > dist/all.min.js.gz', function (error, output) { + console.log('Gzipped to dist/all.min.js.gz'); + + exec('ls -l dist', function (error, output) { + console.log(output.replace(/^.*/, '')); + }); + }); + }); }); }); \ No newline at end of file