dool-build
Version:
d-band tool & dev tool
74 lines (55 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _color = require('./color');
var _rimraf = require('rimraf');
var _rimraf2 = _interopRequireDefault(_rimraf);
var _config = require('./config');
var _config2 = _interopRequireDefault(_config);
var _worker = require('./worker');
var _worker2 = _interopRequireDefault(_worker);
var _forkPool = require('fork-pool');
var _forkPool2 = _interopRequireDefault(_forkPool);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function info(str) {
console.log((0, _color.green)('\nBuild completed 🎉\n'));
console.log(str);
}
function error(str) {
console.error((0, _color.red)('\nBuild failed 💥\n'));
console.error((0, _color.red)(str));
}
exports.default = function (args, callback) {
// Get config.
var cfgs = (0, _config2.default)(args);
// Clean output dir first.
cfgs.forEach(function (cfg) {
_rimraf2.default.sync(cfg.output.path);
});
if (args.cluster) {
(function () {
var output = [];
var pool = new _forkPool2.default(`${__dirname}/worker.js`, null, null, {});
for (var i = 0; i < cfgs.length; i++) {
pool.enqueue({
index: i,
args: args
}, function (err, res) {
if (err) return;
output.push(res.stdout);
});
}
pool.drain(function () {
info(output.join('\n'));
callback && callback();
});
})();
} else {
(0, _worker2.default)(args, cfgs, function (err, stats) {
err ? error(err.stack) : info(stats);
callback && callback(err);
});
}
};
module.exports = exports['default'];