123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- var fs = require("fs");
- var path = require("path");
- var argparse = require( "argparse" );
- var uglify = require("uglify-js2");
- var spawn = require('child_process').spawn;
- function main() {
- "use strict";
- var parser = new argparse.ArgumentParser();
- parser.addArgument( ['--include'], { action: 'append', required: true } );
- parser.addArgument( ['--externs'], { action: 'append', defaultValue: ['./externs/common.js'] } );
- parser.addArgument( ['--minify'], { action: 'storeTrue', defaultValue: false } );
- parser.addArgument( ['--output'], { defaultValue: '../../build/three.js' } );
- parser.addArgument( ['--sourcemaps'], { action: 'storeTrue', defaultValue: false } );
-
- var args = parser.parseArgs();
-
- var output = args.output;
- console.log(' * Building ' + output);
-
- var sourcemap = '';
- var sourcemapping = '';
- if ( args.sourcemaps ){
- sourcemap = output + '.map';
- sourcemapping = '\n//@ sourceMappingURL=' + sourcemap;
- }
- var buffer = [];
- var sources = [];
- for ( var i = 0; i < args.include.length; i ++ ){
-
- var contents = fs.readFileSync( './includes/' + args.include[i] + '.json', 'utf8' );
- var files = JSON.parse( contents );
- for ( var j = 0; j < files.length; j ++ ){
- var file = '../../' + files[ j ];
- sources.push( file );
- buffer.push( fs.readFileSync( file, 'utf8' ) );
- }
- }
- console.log( buffer.length );
- var temp = buffer.join( '' );
-
- if ( !args.minify ){
- fs.writeFileSync( output,temp, 'utf8' );
- } else {
- var result = uglify.minify( sources, { outSourceMap: sourcemap } );
-
- fs.writeFileSync( output, result.code + sourcemapping, 'utf8' );
- if ( args.sourcemaps ) {
- fs.writeFileSync( sourcemap, result.map, 'utf8' );
- }
- }
- }
- main();
|