@@ -503,37 +503,43 @@ function _addLiveReload(
503
503
504
504
// Workaround node shim hoisting issues with live reload client
505
505
// 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 ;
519
520
}
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
+ }
532
538
}
539
+ } ,
540
+ ) ,
541
+ ) ;
533
542
}
534
- } ,
535
- ) ,
536
- ) ;
537
543
538
544
// This allows for live reload of page when changes are made to repo.
539
545
// https://webpack.js.org/configuration/dev-server/#devserver-inline
0 commit comments