diff options
Diffstat (limited to 'front/odiparpack/server/middlewares/addDevMiddlewares.js')
| -rw-r--r-- | front/odiparpack/server/middlewares/addDevMiddlewares.js | 38 |
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()); + } + }); + }); +}; |
