66 lines
1.6 KiB
JavaScript
66 lines
1.6 KiB
JavaScript
const child_process = require("child_process");
|
|
const fs = require("fs");
|
|
const debug = process.argv[2] && process.argv[2].toLowerCase().includes("debug=true");
|
|
const minify = process.argv[2] && process.argv[2].toLowerCase().includes("release=min");
|
|
|
|
console.log("Start build .....");
|
|
console.log('Bundle: ' + ('module' /* 'custom' */) + (debug ? ":debug" : (minify ? ":min" : "")));
|
|
|
|
//fs.existsSync("log") || fs.mkdirSync("log");
|
|
fs.existsSync("tmp") || fs.mkdirSync("tmp");
|
|
fs.existsSync("dist") || fs.mkdirSync("dist");
|
|
|
|
const files = [
|
|
|
|
"async.js",
|
|
"cache.js",
|
|
"common.js",
|
|
"config.js",
|
|
"document.js",
|
|
"engine.js",
|
|
"global.js",
|
|
"index.js",
|
|
"intersect.js",
|
|
"lang.js",
|
|
"polyfill.js",
|
|
"preset.js",
|
|
"serialize.js",
|
|
"type.js",
|
|
"webpack.js"
|
|
];
|
|
|
|
files.forEach(function(file){
|
|
|
|
let src = String(fs.readFileSync("src/" + file));
|
|
src = src.replace(/\/\/ COMPILER BLOCK -->(.*)<-- COMPILER BLOCK/gs, "");
|
|
fs.writeFileSync("tmp/" + file, src);
|
|
});
|
|
|
|
fs.copyFileSync("task/babel." + (debug ? "debug": (minify ? "min" : "bundle")) + ".json", "tmp/.babelrc");
|
|
|
|
exec("npx babel tmp -d dist/module" + (debug ? "-debug" : (minify ? "-min --minified --compact true" : "")) + " --config-file tmp/.babelrc && exit 0", function(){
|
|
|
|
console.log("Build Complete.");
|
|
});
|
|
|
|
function exec(prompt, callback){
|
|
|
|
const child = child_process.exec(prompt, function(err, stdout, stderr){
|
|
|
|
if(err){
|
|
|
|
console.error(err);
|
|
}
|
|
else{
|
|
|
|
if(callback){
|
|
|
|
callback();
|
|
}
|
|
}
|
|
});
|
|
|
|
child.stdout.pipe(process.stdout);
|
|
child.stderr.pipe(process.stderr);
|
|
}
|