UNPKG

2.34 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7exports.default = function (projectDir, configDir) {
8 // Build the webpack configuration using the `baseConfig`
9 // custom `.babelrc` file and `webpack.config.js` files
10 var config = (0, _config2.default)('DEVELOPMENT', _webpack4.default, projectDir, configDir);
11
12 // remove the leading '/'
13 var publicPath = config.output.publicPath;
14 if (publicPath[0] === '/') {
15 publicPath = publicPath.slice(1);
16 }
17
18 var compiler = (0, _webpack2.default)(config);
19 var devMiddlewareOptions = {
20 noInfo: true,
21 publicPath: config.output.publicPath,
22 watchOptions: config.watchOptions || {}
23 };
24
25 var router = new _express.Router();
26 var middlewareFn = getMiddleware(configDir);
27 middlewareFn(router);
28
29 router.use((0, _webpackDevMiddleware2.default)(compiler, devMiddlewareOptions));
30 router.use((0, _webpackHotMiddleware2.default)(compiler));
31
32 router.get('/', function (req, res) {
33 res.send((0, _index2.default)(publicPath));
34 });
35
36 return router;
37};
38
39var _fs = require('fs');
40
41var _fs2 = _interopRequireDefault(_fs);
42
43var _path = require('path');
44
45var _path2 = _interopRequireDefault(_path);
46
47var _express = require('express');
48
49var _webpack = require('webpack');
50
51var _webpack2 = _interopRequireDefault(_webpack);
52
53var _webpackDevMiddleware = require('webpack-dev-middleware');
54
55var _webpackDevMiddleware2 = _interopRequireDefault(_webpackDevMiddleware);
56
57var _webpackHotMiddleware = require('webpack-hot-middleware');
58
59var _webpackHotMiddleware2 = _interopRequireDefault(_webpackHotMiddleware);
60
61var _webpack3 = require('./config/webpack.config');
62
63var _webpack4 = _interopRequireDefault(_webpack3);
64
65var _config = require('./config');
66
67var _config2 = _interopRequireDefault(_config);
68
69var _index = require('./index.html');
70
71var _index2 = _interopRequireDefault(_index);
72
73function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
74
75function getMiddleware(configDir) {
76 var middlewarePath = _path2.default.resolve(configDir, 'middleware.js');
77 if (_fs2.default.existsSync(middlewarePath)) {
78 var middlewareModule = require(middlewarePath);
79 if (middlewareModule.__esModule) {
80 middlewareModule = middlewareModule.default;
81 }
82 return middlewareModule;
83 }
84 return function () {};
85}
\No newline at end of file