UNPKG

dev-toolkit

Version:

Universal Development Toolkit for React Veterans

93 lines (79 loc) 3.58 kB
"use strict"; var _webpack = _interopRequireDefault(require("webpack")); var _webpackDevMiddleware = _interopRequireDefault(require("webpack-dev-middleware")); var _webpackHotMiddleware = _interopRequireDefault(require("webpack-hot-middleware")); var _projectSettings = require("../webpack/projectSettings"); var _config = _interopRequireDefault(require("../webpack/config")); var _utilities = require("../utilities"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } (0, _utilities.bootstrap)().then(function (_ref) { var server = _ref.server, userSettings = _ref.userSettings; var webpackAssets = {}; var config = (0, _config.default)({ creatingBuild: false, getWebpackAssets: function getWebpackAssets(assets) { webpackAssets = assets; return JSON.stringify(assets); }, userSettings: userSettings }); (0, _utilities.log)({ message: 'Starting Webpack…' }); // Compile with middleware for hot-reloading var compiler = (0, _webpack.default)(_objectSpread({}, config, { devtool: 'source-map', entry: _objectSpread({}, config.entry, { app: ['webpack-hot-middleware/client'].concat(config.entry.app) }) })); (0, _utilities.log)({ message: 'Compiling initial bundle…\n' }); var webpackDevMiddlewareInstance = (0, _webpackDevMiddleware.default)(compiler, { stats: 'minimal', publicPath: config.output.publicPath }); var webpackHotMiddlewareInstance = (0, _webpackHotMiddleware.default)(compiler); webpackDevMiddlewareInstance.waitUntilValid(function () { (0, _utilities.log)({ message: '\n✨ Initial compilation has finished.', type: 'success' }); (0, _utilities.log)({ message: 'Attaching dev-middleware & hot-middleware…' }); try { server.express.use(webpackDevMiddlewareInstance); server.express.use(webpackHotMiddlewareInstance); } catch (error) { (0, _utilities.help)({ displayedWhen: server && !server.express, warning: 'Your server needs a `this.express` to be set for attaching webpack middleware.', instruction: 'Example: `constructor() { this.express = express(); }`', link: '/dev-toolkit#custom-server', error: error }); } (0, _utilities.log)({ message: 'Starting your Server App…\n', useSeparator: true }); try { server.start({ assets: webpackAssets, buildFolder: _projectSettings.buildFolder }); } catch (error) { (0, _utilities.help)({ displayedWhen: server && typeof server.start !== 'function', warning: 'Your server needs a `start`-method.', instruction: 'Example: `start({ assets }) { this.express.listen(2000); }`', link: '/dev-toolkit#custom-server', error: error }); } }); });