dool-server
Version:
d-band tool & dev tool
77 lines (59 loc) • 2.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.default = function (args) {
var webpack = _doolBuild2.default.webpack;
// Get config.
var cfgs = _doolBuild2.default.config({
cwd: args.cwd,
extract: args.extract
});
var devServer = { disableHostCheck: true };
cfgs.forEach(function (v) {
v.output.pathinfo = true;
v.devtool = 'cheap-module-source-map';
v.plugins.push(new webpack.HotModuleReplacementPlugin());
_extends(devServer, v.devServer);
});
var compiler = webpack(cfgs);
// Hack: remove extract-text-webpack-plugin log
args.verbose || compiler.plugin('done', function (stats) {
stats.stats.forEach(function (stat) {
stat.compilation.children = stat.compilation.children.filter(function (child) {
return child.name !== 'extract-text-webpack-plugin';
});
});
});
var opts = {
https: !!args.https,
stats: {
colors: true,
children: true,
chunks: !!args.verbose,
modules: !!args.verbose,
chunkModules: !!args.verbose,
hash: !!args.verbose,
version: !!args.verbose
}
};
// webpack config passed to webpack-dev-server
_extends(opts, devServer);
var port = args.port || 8000;
var server = new _webpackDevServer2.default(compiler, opts);
server.listen(port, '0.0.0.0', function () {});
var url = (args.https ? 'https://' : 'http://') + (0, _ip.address)() + ':' + port;
console.log('Starting up dool server.');
console.log('Server url: ' + '\x1B[36m ' + url + ' \x1B[39m');
console.log('Hit CTRL-C to stop the server');
console.log(['\x1B[31m', ' ________ ______ ', ' ___ __ \\______ ______ ___ / ', ' __ / / /_ __ \\_ __ \\__ / ', ' _ /_/ / / /_/ // /_/ /_ / ', ' /_____/ \\____/ \\____/ /_/ ', ' ', '\x1B[39m'].join('\n'));
return server;
};
var _ip = require('ip');
var _doolBuild = require('dool-build');
var _doolBuild2 = _interopRequireDefault(_doolBuild);
var _webpackDevServer = require('webpack-dev-server');
var _webpackDevServer2 = _interopRequireDefault(_webpackDevServer);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = exports['default'];