source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Content/Web/mrdoob-three.js-4862f5f/utils/build/build.js@ 28897

Last change on this file since 28897 was 28897, checked in by davidb, 10 years ago

GUI front-end to server base plus web page content

File size: 1.7 KB
Line 
1var fs = require("fs");
2var path = require("path");
3var argparse = require( "argparse" );
4var uglify = require("uglify-js2");
5var spawn = require('child_process').spawn;
6
7function main() {
8
9 "use strict";
10
11 var parser = new argparse.ArgumentParser();
12 parser.addArgument( ['--include'], { action: 'append', required: true } );
13 parser.addArgument( ['--externs'], { action: 'append', defaultValue: ['./externs/common.js'] } );
14 parser.addArgument( ['--minify'], { action: 'storeTrue', defaultValue: false } );
15 parser.addArgument( ['--output'], { defaultValue: '../../build/three.js' } );
16 parser.addArgument( ['--sourcemaps'], { action: 'storeTrue', defaultValue: false } );
17
18
19 var args = parser.parseArgs();
20
21 var output = args.output;
22 console.log(' * Building ' + output);
23
24 var sourcemap = '';
25 var sourcemapping = '';
26
27 if ( args.sourcemaps ){
28
29 sourcemap = output + '.map';
30 sourcemapping = '\n//@ sourceMappingURL=' + sourcemap;
31
32 }
33
34 var buffer = [];
35 var sources = [];
36
37 for ( var i = 0; i < args.include.length; i ++ ){
38
39 var contents = fs.readFileSync( './includes/' + args.include[i] + '.json', 'utf8' );
40 var files = JSON.parse( contents );
41
42 for ( var j = 0; j < files.length; j ++ ){
43
44 var file = '../../' + files[ j ];
45 sources.push( file );
46 buffer.push( fs.readFileSync( file, 'utf8' ) );
47
48 }
49
50 }
51
52 console.log( buffer.length );
53 var temp = buffer.join( '' );
54
55 if ( !args.minify ){
56
57 fs.writeFileSync( output,temp, 'utf8' );
58
59 } else {
60
61 var result = uglify.minify( sources, { outSourceMap: sourcemap } );
62
63 fs.writeFileSync( output, result.code + sourcemapping, 'utf8' );
64
65 if ( args.sourcemaps ) {
66
67 fs.writeFileSync( sourcemap, result.map, 'utf8' );
68
69 }
70
71 }
72
73}
74
75main();
Note: See TracBrowser for help on using the repository browser.