UNPKG

ae-biu

Version:

Born For AE, Born To Do

111 lines (74 loc) 3.27 kB
#!/usr/bin/env node 'use strict'; var _from = require('babel-runtime/core-js/array/from'); var _from2 = _interopRequireDefault(_from); var _set = require('babel-runtime/core-js/set'); var _set2 = _interopRequireDefault(_set); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _commander = require('commander'); var _commander2 = _interopRequireDefault(_commander); var _webpack = require('webpack'); var _webpack2 = _interopRequireDefault(_webpack); var _webpackDevServer = require('webpack-dev-server'); var _webpackDevServer2 = _interopRequireDefault(_webpackDevServer); var _logger = require('./utils/logger'); var _logger2 = _interopRequireDefault(_logger); var _getWebpackConfig = require('./utils/get-webpack-config'); var _getWebpackConfig2 = _interopRequireDefault(_getWebpackConfig); var _getUrls = require('./utils/get-urls'); var _getUrls2 = _interopRequireDefault(_getUrls); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _commander2.default.usage('[options]').parse(process.argv); var args = _commander2.default.args; process.env.NODE_ENV = 'development'; process.env.SDP_ENV = (args[0] || process.env.SDP_ENV || process.env.npm_config_sdp_env || 'test').trim(); var port = process.env.PORT || 3000; var host = process.env.HOST || '0.0.0.0'; var webpackConfig = require('./config/webpack.config.dev'); var webpackDevServerConfig = require('./config/webpack-dev-server.config'); var projectConfig = (0, _getWebpackConfig2.default)(); if (typeof projectConfig === 'function') { webpackConfig = projectConfig((0, _extends3.default)({}, webpackConfig, { devServer: webpackDevServerConfig })); } else if (projectConfig) { webpackConfig = projectConfig; } if (webpackConfig.devServer) { webpackDevServerConfig = (0, _extends3.default)({}, webpackDevServerConfig, webpackConfig.devServer); delete webpackConfig.devServer; } var _webpackConfig = webpackConfig, _webpackConfig$entry = _webpackConfig.entry, entry = _webpackConfig$entry === undefined ? {} : _webpackConfig$entry; var hmrEntry = ['webpack-dev-server/client', 'webpack/hot/dev-server']; if (entry.hasOwnProperty('app')) { if (Array.isArray(entry.app)) { entry.app = hmrEntry.concat(entry.app); } else if (typeof entry.app === 'string') { entry.app = hmrEntry.concat([entry.app]); } var appSet = new _set2.default(entry.app); entry.app = (0, _from2.default)(appSet); } webpackConfig.output.publicPath = '/'; var compiler = (0, _webpack2.default)(webpackConfig); var urls = (0, _getUrls2.default)(host, port); var urlPrintStr = ['Server running at:', ' - Local: ' + urls.local, ' - Network: ' + urls.network].join('\n'); compiler.plugin('done', function () { return console.log(urlPrintStr); }); var devServer = new _webpackDevServer2.default(compiler, webpackDevServerConfig); devServer.listen(port, host, function (err) { if (err) { _logger2.default.error(err); } _logger2.default.info('Starting server with HMR\n'); _logger2.default.info(urlPrintStr);['SIGINT', 'SIGTERM'].forEach(function (sig) { process.on(sig, function () { devServer.close(); process.exit(); }); }); });