-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathcmd.js
executable file
·64 lines (54 loc) · 1.63 KB
/
cmd.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env node
var fs = require('fs');
var path = require('path');
var outpipe = require('outpipe');
var fromArgs = require('./args.js');
var w = fromArgs(process.argv.slice(2));
var outfile = w.argv.o || w.argv.outfile;
var verbose = w.argv.v || w.argv.verbose;
if (w.argv.version) {
console.error('watchify v' + require('../package.json').version +
' (in ' + path.resolve(__dirname, '..') + ')'
);
console.error('browserify v' + require('browserify/package.json').version +
' (in ' + path.dirname(require.resolve('browserify')) + ')'
);
return;
}
if (!outfile) {
console.error('You MUST specify an outfile with -o.');
process.exit(1);
}
var bytes, time;
w.on('bytes', function (b) { bytes = b });
w.on('time', function (t) { time = t });
w.on('update', bundle);
bundle();
function bundle () {
var didError = false;
var outStream = process.platform === 'win32'
? fs.createWriteStream(outfile)
: outpipe(outfile);
var wb = w.bundle();
if (!wb) {
console.log('Watchify cache still valid, nothing to do');
return;
}
wb.on('error', function (err) {
console.error(String(err));
didError = true;
outStream.end('console.error('+JSON.stringify(String(err))+');');
});
wb.pipe(outStream);
outStream.on('error', function (err) {
console.error(err);
});
outStream.on('close', function () {
if (verbose && !didError) {
console.error(bytes + ' bytes written to ' + outfile
+ ' (' + (time / 1000).toFixed(2) + ' seconds)'
);
}
w.write();
});
}