var spawn = require('child_process').spawn var fs = require('fs') var q = [ function () { if (!fs.existsSync('./build')) { fs.mkdirSync('./build') } done() }, function () { var browserify = spawn('node', [ 'node_modules/.bin/browserify', 'lib/index.js', '-s', 'qrcodelib', '-d', '-o', 'build/qrcode.js' ]) browserify.stdin.end() browserify.stdout.pipe(process.stdout) browserify.stderr.pipe(process.stderr) browserify.on('exit', function (code) { if (code) { console.error('browserify failed!') process.exit(code) } done() }) }, function () { var uglify = spawn('node', [ 'node_modules/.bin/uglifyjs', '--compress', '--mangle', '--source-map', 'build/qrcode.min.js.map', '--source-map-url', 'qrcode.min.js.map', '--', 'build/qrcode.js']) var minStream = fs.createWriteStream('build/qrcode.min.js') uglify.stdout.pipe(minStream) uglify.stdin.end() uglify.on('exit', function (code) { if (code) { console.error('uglify failed!') fs.unlink('build/qrcode.min.js', function () { process.exit(code) }) } done() }) } ] var done = function () { var j = q.shift() if (j) j() else complete() } var complete = function () { console.log('build complete =)') } done()