UNPKG

1.07 kBJavaScriptView Raw
1'use strict';
2
3const express = require('express');
4const webpack = require('webpack');
5const makeWebpackConfig = require('./make-webpack-config');
6const pugStatic = require('pug-static');
7
8module.exports = function createServer(config, env) {
9 const webpackConfig = makeWebpackConfig(config, env);
10 const compiler = webpack(webpackConfig);
11 const app = express();
12
13 if (env === 'development') {
14 // register webpack middlewares
15 app.use(require('webpack-dev-middleware')(compiler, {
16 noInfo: true,
17 stats: webpackConfig.stats || {},
18 }));
19
20 app.use(require('webpack-hot-middleware')(compiler));
21 }
22
23 // configure static assets
24 if (config.assetsDir) {
25 app.use(express.static(config.assetsDir));
26 }
27
28 // configure static template files, use template engine pug
29 if (config.viewsDir) {
30 app.use(pugStatic(config.viewsDir));
31 }
32
33 // user defined customizations
34 if (config.configureServer) {
35 config.configureServer(app, env);
36 }
37
38 return {app, compiler};
39};