@@ -503,37 +503,43 @@ function _addLiveReload(
503503
504504 // Workaround node shim hoisting issues with live reload client
505505 // Only needed in dev server mode to support live reload capabilities in all package managers
506- const webpackPath = path . dirname ( require . resolve ( 'webpack/package.json' ) ) ;
507- const nodeLibsBrowserPath = require . resolve ( 'node-libs-browser' , { paths : [ webpackPath ] } ) ;
508- const nodeLibsBrowser = require ( nodeLibsBrowserPath ) ;
509- webpackConfig . plugins . push (
510- new webpack . NormalModuleReplacementPlugin (
511- / ^ e v e n t s | u r l | q u e r y s t r i n g $ / ,
512- ( resource : { issuer ?: string ; request : string } ) => {
513- if ( ! resource . issuer ) {
514- return ;
515- }
516- if ( / [ \/ \\ ] h o t [ \/ \\ ] e m i t t e r \. j s $ / . test ( resource . issuer ) ) {
517- if ( resource . request === 'events' ) {
518- resource . request = nodeLibsBrowser . events ;
506+ // Not needed in Webpack 5 - node-libs-browser will not be present in webpack 5
507+ let nodeLibsBrowserPath ;
508+ try {
509+ const webpackPath = path . dirname ( require . resolve ( 'webpack/package.json' ) ) ;
510+ nodeLibsBrowserPath = require . resolve ( 'node-libs-browser' , { paths : [ webpackPath ] } ) ;
511+ } catch { }
512+ if ( nodeLibsBrowserPath ) {
513+ const nodeLibsBrowser = require ( nodeLibsBrowserPath ) ;
514+ webpackConfig . plugins . push (
515+ new webpack . NormalModuleReplacementPlugin (
516+ / ^ e v e n t s | u r l | q u e r y s t r i n g $ / ,
517+ ( resource : { issuer ?: string ; request : string } ) => {
518+ if ( ! resource . issuer ) {
519+ return ;
519520 }
520- } else if (
521- / [ \/ \\ ] w e b p a c k - d e v - s e r v e r [ \/ \\ ] c l i e n t [ \/ \\ ] u t i l s [ \/ \\ ] c r e a t e S o c k e t U r l \. j s $ / . test (
522- resource . issuer ,
523- )
524- ) {
525- switch ( resource . request ) {
526- case 'url' :
527- resource . request = nodeLibsBrowser . url ;
528- break ;
529- case 'querystring' :
530- resource . request = nodeLibsBrowser . querystring ;
531- break ;
521+ if ( / [ \/ \\ ] h o t [ \/ \\ ] e m i t t e r \. j s $ / . test ( resource . issuer ) ) {
522+ if ( resource . request === 'events' ) {
523+ resource . request = nodeLibsBrowser . events ;
524+ }
525+ } else if (
526+ / [ \/ \\ ] w e b p a c k - d e v - s e r v e r [ \/ \\ ] c l i e n t [ \/ \\ ] u t i l s [ \/ \\ ] c r e a t e S o c k e t U r l \. j s $ / . test (
527+ resource . issuer ,
528+ )
529+ ) {
530+ switch ( resource . request ) {
531+ case 'url' :
532+ resource . request = nodeLibsBrowser . url ;
533+ break ;
534+ case 'querystring' :
535+ resource . request = nodeLibsBrowser . querystring ;
536+ break ;
537+ }
532538 }
539+ } ,
540+ ) ,
541+ ) ;
533542 }
534- } ,
535- ) ,
536- ) ;
537543
538544 // This allows for live reload of page when changes are made to repo.
539545 // https://webpack.js.org/configuration/dev-server/#devserver-inline
0 commit comments