eunomia-controller
Version:
38 lines (33 loc) • 1.15 kB
JavaScript
;
var express = require('express');
var logger = require('./logger');
var argv = require('minimist')(process.argv.slice(2));
var setup = require('./middlewares');
var isDev = process.env.NODE_ENV !== 'production';
var ngrok = isDev && process.env.ENABLE_TUNNEL || argv.tunnel ? require('ngrok') : false;
var resolve = require('path').resolve;
module.exports = function () {
var app = express();
return {
app: app,
start: function start() {
setup(app, {
outputPath: resolve(process.cwd(), 'build'),
publicPath: '/'
});
var customHost = argv.host || process.env.HOST;
var host = customHost || null;
var prettyHost = customHost || 'localhost';
var port = argv.port || process.env.PORT || 3000;
app.listen(port, host, function (err) {
if (err) return logger.error(err.message);
if (ngrok) {
ngrok.connect(port, function (innerErr, url) {
if (innerErr) return logger.error(innerErr);
logger.appStarted(port, prettyHost, url);
});
} else logger.appStarted(port, prettyHost);
});
}
};
};