const path = require('path'); const webpack = require('webpack'); const webpackDevMiddleware = require('webpack-dev-middleware'); const webpackHotMiddleware = require('webpack-hot-middleware'); const { addProxyMiddleware } = require('../proxy'); function createWebpackMiddleware(compiler, publicPath) { return webpackDevMiddleware(compiler, { // logLevel: 'warn', publicPath, // silent: true, stats: 'errors-only', }); } module.exports = function addDevMiddlewares(app, webpackConfig) { const compiler = webpack(webpackConfig); const middleware = createWebpackMiddleware( compiler, webpackConfig.output.publicPath, ); app.use(middleware); app.use(webpackHotMiddleware(compiler)); addProxyMiddleware(app); // Since webpackDevMiddleware uses memory-fs internally to store build // artifacts, we use it instead const fs = middleware.context.outputFileSystem; app.get('*', (_req, res) => { fs.readFile(path.join(compiler.outputPath, 'index.html'), (err, file) => { if (err) { res.sendStatus(404); } else { res.send(file.toString()); } }); }); };