From 31479110a453e624174afdb8dcb5240caa507d6e Mon Sep 17 00:00:00 2001 From: Marco Sylvestersen Date: Thu, 1 Sep 2022 16:24:43 +0200 Subject: [PATCH 1/2] Fix injectRefreshLoader performance issue --- lib/utils/injectRefreshLoader.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/utils/injectRefreshLoader.js b/lib/utils/injectRefreshLoader.js index 16cd9f7c..73e085bd 100644 --- a/lib/utils/injectRefreshLoader.js +++ b/lib/utils/injectRefreshLoader.js @@ -13,6 +13,8 @@ const path = require('path'); */ const resolvedLoader = require.resolve('../../loader'); +const reactRefreshPath = path.dirname(require.resolve('react-refresh')) +const refreshUtilsPath = path.join(__dirname, '../runtime/RefreshUtils') /** * Injects refresh loader to all JavaScript-like and user-specified files. @@ -31,8 +33,8 @@ function injectRefreshLoader(moduleData, injectOptions) { // Skip react-refresh and the plugin's runtime utils to prevent self-referencing - // this is useful when using the plugin as a direct dependency, // or when node_modules are specified to be processed. - !moduleData.resource.includes(path.dirname(require.resolve('react-refresh'))) && - !moduleData.resource.includes(path.join(__dirname, '../runtime/RefreshUtils')) && + !moduleData.resource.includes(reactRefreshPath) && + !moduleData.resource.includes(refreshUtilsPath) && // Check to prevent double injection !moduleData.loaders.find(({ loader }) => loader === resolvedLoader) ) { From bc9ac8b651c00b63ed3f0594918e584667cb206b Mon Sep 17 00:00:00 2001 From: Marco Sylvestersen Date: Thu, 1 Sep 2022 16:35:16 +0200 Subject: [PATCH 2/2] Fix linting issues --- lib/utils/injectRefreshLoader.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/utils/injectRefreshLoader.js b/lib/utils/injectRefreshLoader.js index 73e085bd..86b42abc 100644 --- a/lib/utils/injectRefreshLoader.js +++ b/lib/utils/injectRefreshLoader.js @@ -13,8 +13,8 @@ const path = require('path'); */ const resolvedLoader = require.resolve('../../loader'); -const reactRefreshPath = path.dirname(require.resolve('react-refresh')) -const refreshUtilsPath = path.join(__dirname, '../runtime/RefreshUtils') +const reactRefreshPath = path.dirname(require.resolve('react-refresh')); +const refreshUtilsPath = path.join(__dirname, '../runtime/RefreshUtils'); /** * Injects refresh loader to all JavaScript-like and user-specified files.