var webpack = require(“webpack”); var readline = require('readline'); var configFullPath = require.resolve(process.argv);

const rl = readline.createInterface({

input: process.stdin,
output: process.stdout,
terminal: false

});

function prepareConfig() {

delete require.cache[configFullPath];
var config = require(configFullPath);
config.entry = process.argv[3];
config.output = {
  path: process.argv[4],
  filename: process.argv[5]
};
return webpack(config);

}

var compiler = prepareConfig();

rl.on('line', function(line) {

if (line.trim() == 'RELOAD') {
  compiler = prepareConfig();
}

compiler.run(function(err, stats) {
  if (err) {
    console.log("FATAL", err);
  }

  var jsonStats = stats.toJson();

  if (jsonStats.errors.length > 0) {
    console.log("WEBPACK ERRORS");
    printArray(jsonStats.errors);
  }

  if (jsonStats.warnings.length > 0) {
    console.log("WEBPACK WARNINGS");
    printArray(jsonStats.warnings);
  }

  console.log("WEBPACK::EOF");
});

});

function printArray(arr) {

arr.forEach(function(item) {
  console.log(item);
});

}