From 3b39cd7ba1c4bf16b974e5b33e7869a1ae1ba538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20DUNGLER?= Date: Thu, 26 Nov 2020 22:52:56 +0100 Subject: [PATCH 1/2] React: Remove FastRefresh if already enabled --- app/react/src/server/framework-preset-react.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/react/src/server/framework-preset-react.ts b/app/react/src/server/framework-preset-react.ts index 68da6e30836..f3385bf3902 100644 --- a/app/react/src/server/framework-preset-react.ts +++ b/app/react/src/server/framework-preset-react.ts @@ -18,7 +18,10 @@ export async function babel(config: TransformOptions, options: StorybookOptions) return { ...config, - plugins: [require.resolve('react-refresh/babel'), ...(config.plugins || [])], + plugins: [ + [require.resolve('react-refresh/babel'), {}, 'storybook-react-refresh'], + ...(config.plugins || []), + ], }; } const storybookReactDirName = path.dirname(require.resolve('@storybook/react/package.json')); @@ -58,8 +61,16 @@ export async function webpackFinal(config: Configuration, options: StorybookOpti if (!fastRefreshEnabled) { return config; } + // matches the name of the plugin in CRA. + const hasReactRefresh = config.plugins.find((p) => p.constructor.name === 'ReactRefreshPlugin'); + + if (hasReactRefresh) { + logger.warn("=> React refresh is already set. You don't need do set the option"); + return config; + } logger.info('=> Using React fast refresh'); + return { ...config, plugins: [...(config.plugins || []), new ReactRefreshWebpackPlugin()], From 7cafe2eb5a4bea84e46be746695813e8d7bff61a Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 27 Nov 2020 09:31:14 +0800 Subject: [PATCH 2/2] Update framework-preset-react.ts --- app/react/src/server/framework-preset-react.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/react/src/server/framework-preset-react.ts b/app/react/src/server/framework-preset-react.ts index f3385bf3902..63970d052be 100644 --- a/app/react/src/server/framework-preset-react.ts +++ b/app/react/src/server/framework-preset-react.ts @@ -65,7 +65,7 @@ export async function webpackFinal(config: Configuration, options: StorybookOpti const hasReactRefresh = config.plugins.find((p) => p.constructor.name === 'ReactRefreshPlugin'); if (hasReactRefresh) { - logger.warn("=> React refresh is already set. You don't need do set the option"); + logger.warn("=> React refresh is already set. You don't need to set the option"); return config; }