diff --git a/server/middleware/webpack-dev.js b/server/boot/dev/webpack-dev.js similarity index 65% rename from server/middleware/webpack-dev.js rename to server/boot/dev/webpack-dev.js index b3b9df1..d6c8e38 100644 --- a/server/middleware/webpack-dev.js +++ b/server/boot/dev/webpack-dev.js @@ -1,10 +1,10 @@ const webpackMiddleware = require('webpack-dev-middleware'); -const webpack = require('./helpers/webpack'); +const webpack = require('../../helpers/webpack'); const isProduction = (process.env.NODE_ENV === 'production'); -module.exports = (params) => { - if (isProduction || params.enabled !== true) return (req, res, next) => next(); +module.exports = (app) => { + if (isProduction) return; const middleware = webpackMiddleware(webpack.compiler, { publicPath: webpack.config.output.publicPath, @@ -19,5 +19,5 @@ module.exports = (params) => { }, }); - return (req, res, next) => middleware(req, res, next); + app.use(middleware); }; diff --git a/server/boot/dev/webpack-hmr.js b/server/boot/dev/webpack-hmr.js new file mode 100644 index 0000000..2e389c6 --- /dev/null +++ b/server/boot/dev/webpack-hmr.js @@ -0,0 +1,12 @@ +const webpackHotMiddleware = require('webpack-hot-middleware'); +const webpack = require('../../helpers/webpack'); + +const isProduction = (process.env.NODE_ENV === 'production'); + +module.exports = (app) => { + if (isProduction) return; + + const middleware = webpackHotMiddleware(webpack.compiler); + + app.use(middleware); +}; diff --git a/server/middleware/helpers/webpack.js b/server/helpers/webpack.js similarity index 69% rename from server/middleware/helpers/webpack.js rename to server/helpers/webpack.js index 8c69198..681d7af 100644 --- a/server/middleware/helpers/webpack.js +++ b/server/helpers/webpack.js @@ -1,5 +1,5 @@ const webpack = require('webpack'); -const config = require('../../config/webpack.dev'); +const config = require('../config/webpack.dev'); const compiler = webpack(config); diff --git a/server/middleware.development.json b/server/middleware.development.json index d898ff3..071c11a 100644 --- a/server/middleware.development.json +++ b/server/middleware.development.json @@ -1,12 +1,4 @@ { - "routes:before": { - "./middleware/webpack-dev": { - "params": { "enabled": true } - }, - "./middleware/webpack-hmr": { - "params": { "enabled": true } - } - }, "final:after": { "strong-error-handler": { "params": { diff --git a/server/middleware.json b/server/middleware.json index e3d7a20..3f2a66e 100644 --- a/server/middleware.json +++ b/server/middleware.json @@ -30,10 +30,6 @@ "session": {}, "auth": {}, "parse": {}, - "routes:before": { - "./middleware/webpack-dev": {}, - "./middleware/webpack-hmr": {} - }, "routes": { "loopback#rest": { "paths": [ diff --git a/server/middleware/webpack-hmr.js b/server/middleware/webpack-hmr.js deleted file mode 100644 index 29e158e..0000000 --- a/server/middleware/webpack-hmr.js +++ /dev/null @@ -1,12 +0,0 @@ -const webpackHotMiddleware = require('webpack-hot-middleware'); -const webpack = require('./helpers/webpack'); - -const isProduction = (process.env.NODE_ENV === 'production'); - -module.exports = (params) => { - if (isProduction || params.enabled !== true) return (req, res, next) => next(); - - const middleware = webpackHotMiddleware(webpack.compiler); - - return (req, res, next) => middleware(req, res, next); -}; diff --git a/server/server.js b/server/server.js index 27d3745..2e7dc2e 100644 --- a/server/server.js +++ b/server/server.js @@ -3,6 +3,13 @@ const loopback = require('loopback'); const boot = require('loopback-boot'); const app = module.exports = loopback(); +const isProduction = (process.env.NODE_ENV === 'production'); + +const bootConfig = { + appRootDir: __dirname, +}; + +if (!isProduction) bootConfig.bootDirs = ['boot/dev']; // start the webserver app.start = () => app.listen(() => { @@ -19,7 +26,7 @@ app.start = () => app.listen(() => { // Bootstrap the application, configure models, datasources and middleware. // Sub-apps like REST API are mounted via boot scripts. -boot(app, __dirname, (err) => { +boot(app, bootConfig, (err) => { if (err) throw err; // start the server if `$ node server.js`