UNPKG

3.22 kBJavaScriptView Raw
1'use strict';
2
3var _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; };
4
5var _webpack = require('webpack');
6
7var _webpack2 = _interopRequireDefault(_webpack);
8
9var _webpackDevMiddleware = require('webpack-dev-middleware');
10
11var _webpackDevMiddleware2 = _interopRequireDefault(_webpackDevMiddleware);
12
13var _webpackHotMiddleware = require('webpack-hot-middleware');
14
15var _webpackHotMiddleware2 = _interopRequireDefault(_webpackHotMiddleware);
16
17var _projectSettings = require('../webpack/projectSettings');
18
19var _config = require('../webpack/config');
20
21var _config2 = _interopRequireDefault(_config);
22
23var _utilities = require('../utilities');
24
25function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
27(0, _utilities.bootstrap)().then(function (_ref) {
28 var server = _ref.server,
29 userSettings = _ref.userSettings;
30
31 var webpackAssets = {};
32 var config = (0, _config2.default)({
33 creatingBuild: false,
34 getWebpackAssets: function getWebpackAssets(assets) {
35 webpackAssets = assets;
36 return JSON.stringify(assets);
37 },
38 userSettings: userSettings
39 });
40
41 (0, _utilities.log)({ message: 'Starting Webpack…' });
42
43 // Compile with middleware for hot-reloading
44 var compiler = (0, _webpack2.default)(_extends({}, config, {
45 devtool: 'source-map',
46 entry: _extends({}, config.entry, {
47 app: ['webpack-hot-middleware/client'].concat(config.entry.app)
48 })
49 }));
50
51 (0, _utilities.log)({ message: 'Compiling initial bundle…\n' });
52
53 var webpackDevMiddlewareInstance = (0, _webpackDevMiddleware2.default)(compiler, {
54 stats: 'minimal',
55 publicPath: config.output.publicPath
56 });
57 var webpackHotMiddlewareInstance = (0, _webpackHotMiddleware2.default)(compiler);
58
59 webpackDevMiddlewareInstance.waitUntilValid(function () {
60 (0, _utilities.log)({ message: '\n✨ Initial compilation has finished.', type: 'success' });
61
62 (0, _utilities.log)({ message: 'Attaching dev-middleware & hot-middleware…' });
63 try {
64 server.express.use(webpackDevMiddlewareInstance);
65 server.express.use(webpackHotMiddlewareInstance);
66 } catch (error) {
67 (0, _utilities.help)({
68 displayedWhen: server && !server.express,
69 warning: 'Your server needs a `this.express` to be set for attaching webpack middleware.',
70 instruction: 'Example: `constructor() { this.express = express(); }`',
71 link: '/dev-toolkit#custom-server',
72 error: error
73 });
74 }
75
76 (0, _utilities.log)({ message: 'Starting your Server App…\n', useSeparator: true });
77 try {
78 server.start({ assets: webpackAssets, buildFolder: _projectSettings.buildFolder });
79 } catch (error) {
80 (0, _utilities.help)({
81 displayedWhen: server && typeof server.start !== 'function',
82 warning: 'Your server needs a `start`-method.',
83 instruction: 'Example: `start({ assets }) { this.express.listen(2000); }`',
84 link: '/dev-toolkit#custom-server',
85 error: error
86 });
87 }
88 });
89});
\No newline at end of file