forked from kigenofkenya/gbrain
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.js
85 lines (74 loc) · 2.54 KB
/
build.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
var fs = require("fs");
var glob = require("glob");
var browserify = require('browserify');
var uglifyjs = require('uglify-js');
var watchify = require('watchify');
// watchify main.js -v --debug -o dist/bundle.js
// yarn && mkdirp dist
// eslint main.js
var args = process.argv.slice(2);
var hasArg = function(argName, args) {
for(var n=0; n < args.length; n++) {
var expl = args[n].split("=");
if(expl[0] === argName) {
if(expl.length > 1)
return expl[1];
else
return true;
}
}
return false;
};
var bT = { "presets": [
"es2015"
],
"plugins": [
"syntax-async-functions",
"transform-regenerator"
],
"sourceMaps": false};
var arrSrcScripts = [];
var arrDistScripts = [];
glob("src/**/*.js", {}, function (er, files) {
arrSrcScripts = files;
for(var n=0; n < arrSrcScripts.length; n++)
arrDistScripts.push(arrSrcScripts[n].replace("src/", "dist/"));
// BUILD & WATCH
if(hasArg("-b", args) !== false) {
for(var n=0; n < arrSrcScripts.length; n++) {
if(arrSrcScripts[n].match(/index.js/gi) === null) {
var b = browserify(arrSrcScripts[n], {"debug": hasArg("-s", args), cache: {}, packageCache: {}, plugin: [watchify]});
b.on('update', bundle.bind(this, b, n));
bundle(b, n);
function bundle(b, n) {
b.transform("babelify", bT).bundle().pipe(fs.createWriteStream(arrDistScripts[n]));
console.log("- UPDATED: "+arrDistScripts[n]);
}
}
}
}
// DEPLOY
if(hasArg("-db", args) !== false) {
for(var n=0; n < arrSrcScripts.length; n++) {
if(arrSrcScripts[n].match(/index.js/gi) !== null) {
b = browserify(arrSrcScripts[n], {"debug": false});
b.transform("babelify", bT).bundle().pipe(fs.createWriteStream(arrDistScripts[n]));
}
}
}
if(hasArg("-d", args) !== false) {
var deployFile = hasArg("-d", args);
for(var n=0; n < arrDistScripts.length; n++) {
if(arrDistScripts[n].match(/index.js/gi) !== null) {
var f = fs.readFileSync(arrDistScripts[n], "utf8");
var options = {
mangle: {
toplevel: true,
}
};
console.log(f);
fs.writeFileSync(deployFile, uglifyjs.minify(f, options).code, "utf8");
}
}
}
});