@@ -3,9 +3,6 @@ import sessionStorage from 'connect-pg-simple';
33import cookieParser from 'cookie-parser' ;
44import session from 'express-session' ;
55import pathToRegexp from 'path-to-regexp' ;
6- import webpack from 'webpack' ;
7- import middleware from 'webpack-dev-middleware' ;
8- import webpackHotMiddleware from 'webpack-hot-middleware' ;
96import { translate } from '../../lib/locale/translate/translate.js' ;
107import { debug , warning } from '../../lib/log/logger.js' ;
118import publicStatic from '../../lib/middlewares/publicStatic.js' ;
@@ -15,13 +12,11 @@ import { getRoutes } from '../../lib/router/Router.js';
1512import { getConfig } from '../../lib/util/getConfig.js' ;
1613import isDevelopmentMode from '../../lib/util/isDevelopmentMode.js' ;
1714import isProductionMode from '../../lib/util/isProductionMode.js' ;
18- import { createConfigClient } from '../../lib/webpack/dev/createConfigClient.js' ;
19- import { isBuildRequired } from '../../lib/webpack/isBuildRequired.js' ;
2015import { getAdminSessionCookieName } from '../../modules/auth/services/getAdminSessionCookieName.js' ;
2116import { getCookieSecret } from '../../modules/auth/services/getCookieSecret.js' ;
2217import { getFrontStoreSessionCookieName } from '../../modules/auth/services/getFrontStoreSessionCookieName.js' ;
2318import { setPageMetaInfo } from '../../modules/cms/services/pageMetaInfo.js' ;
24- import { findRoute } from './findRoute .js' ;
19+ import { getDevMiddleware , getHotMiddleware } from './devEnvHelper .js' ;
2520
2621export function addDefaultMiddlewareFuncs ( app ) {
2722 app . use ( ( request , response , next ) => {
@@ -172,63 +167,60 @@ export function addDefaultMiddlewareFuncs(app) {
172167 }
173168 } ) ;
174169
175- app . use ( async ( request , response , next ) => {
176- if ( ! isDevelopmentMode ( ) ) {
177- return next ( ) ;
178- }
170+ if ( isDevelopmentMode ( ) ) {
171+ // Admin webpack dev middleware - only for /backend/* paths
172+ app . use ( ( request , response , next ) => {
173+ if ( request . path . startsWith ( '/backend/' ) ) {
174+ const adminDevMiddleware = getDevMiddleware ( true ) ;
175+ adminDevMiddleware . waitUntilValid ( ( ) => {
176+ const { stats } = adminDevMiddleware . context ;
177+ if ( stats ) {
178+ response . locals . jsonWebpackStats = stats . toJson ( ) ;
179+ }
180+ } ) ;
181+ adminDevMiddleware ( request , response , next ) ;
182+ } else {
183+ next ( ) ;
184+ }
185+ } ) ;
179186
180- const route = findRoute ( request ) ;
181- if ( ! route || ! isBuildRequired ( route ) ) {
182- next ( ) ;
183- } else {
184- if ( ! app . locals . webpackCompiler ) {
185- app . locals . webpackCompiler = webpack ( createConfigClient ( ) as any ) ;
187+ app . use ( ( request , response , next ) => {
188+ if ( request . path . startsWith ( '/__webpack_hmr_admin' ) ) {
189+ const adminHotMiddleware = getHotMiddleware ( true ) ;
190+ adminHotMiddleware ( request , response , next ) ;
191+ } else {
192+ next ( ) ;
186193 }
187- const { webpackCompiler } = app . locals ;
188- let middlewareFunc ;
189- if ( ! app . locals . webpackMiddleware ) {
190- middlewareFunc = app . locals . webpackMiddleware = middleware (
191- webpackCompiler ,
192- {
193- serverSideRender : true ,
194- publicPath : '/' ,
195- stats : 'none'
194+ } ) ;
195+
196+ // Frontstore webpack dev middleware - for all other paths
197+ app . use ( ( request , response , next ) => {
198+ if (
199+ ! request . path . startsWith ( '/backend/' ) &&
200+ ! request . path . startsWith ( '/__webpack_hmr_admin' )
201+ ) {
202+ const frontstoreDevMiddleware = getDevMiddleware ( false ) ;
203+ frontstoreDevMiddleware . waitUntilValid ( ( ) => {
204+ const { stats } = frontstoreDevMiddleware . context ;
205+ if ( stats ) {
206+ response . locals . jsonWebpackStats = stats . toJson ( ) ;
196207 }
197- ) ;
198- middlewareFunc . context . logger . info = ( ) => { } ;
208+ } ) ;
209+ frontstoreDevMiddleware ( request , response , next ) ;
199210 } else {
200- middlewareFunc = app . locals . webpackMiddleware ;
211+ next ( ) ;
201212 }
202- middlewareFunc . waitUntilValid ( ( ) => {
203- const { stats } = middlewareFunc . context ;
204- const jsonWebpackStats = stats . toJson ( ) ;
205- response . locals . jsonWebpackStats = jsonWebpackStats ;
206- } ) ;
207-
208- middlewareFunc ( request , response , next ) ;
209- }
210- } ) ;
211- app . use ( ( request , response , next ) => {
212- if ( ! isDevelopmentMode ( ) ) {
213- return next ( ) ;
214- }
215- const route = findRoute ( request ) ;
216- request . currentRoute = route ;
217- if ( ! isBuildRequired ( route ) ) {
218- return next ( ) ;
219- }
220- if ( ! app . locals . hotMiddleware ) {
221- const { webpackCompiler } = app . locals ;
222- const hotMiddleware = webpackHotMiddleware ( webpackCompiler , {
223- path : `/eHot`
224- } ) ;
225- app . locals . hotMiddleware = hotMiddleware ;
226- }
227- return app . locals . hotMiddleware ( request , response , ( ) => {
228- next ( ) ;
229213 } ) ;
230- } ) ;
231214
215+ app . use ( ( request , response , next ) => {
216+ if ( request . path . startsWith ( '/__webpack_hmr_frontstore' ) ) {
217+ const frontstoreHotMiddleware = getHotMiddleware ( false ) ;
218+ frontstoreHotMiddleware ( request , response , next ) ;
219+ } else {
220+ next ( ) ;
221+ }
222+ } ) ;
223+ }
232224 /** 404 Not Found handle */
233225 app . use ( ( request , response , next ) => {
234226 if ( ! request . currentRoute ) {
0 commit comments