summaryrefslogtreecommitdiffstats
path: root/front/odiparpack/server/middlewares/addDevMiddlewares.js
diff options
context:
space:
mode:
Diffstat (limited to 'front/odiparpack/server/middlewares/addDevMiddlewares.js')
-rw-r--r--front/odiparpack/server/middlewares/addDevMiddlewares.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/front/odiparpack/server/middlewares/addDevMiddlewares.js b/front/odiparpack/server/middlewares/addDevMiddlewares.js
new file mode 100644
index 0000000..495b4a2
--- /dev/null
+++ b/front/odiparpack/server/middlewares/addDevMiddlewares.js
@@ -0,0 +1,38 @@
+const path = require('path');
+const webpack = require('webpack');
+const webpackDevMiddleware = require('webpack-dev-middleware');
+const webpackHotMiddleware = require('webpack-hot-middleware');
+
+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));
+
+ // Since webpackDevMiddleware uses memory-fs internally to store build
+ // artifacts, we use it instead
+ const fs = middleware.fileSystem;
+
+ app.get('*', (req, res) => {
+ fs.readFile(path.join(compiler.outputPath, 'index.html'), (err, file) => {
+ if (err) {
+ res.sendStatus(404);
+ } else {
+ res.send(file.toString());
+ }
+ });
+ });
+};