Skip to content

Commit 0d63f72

Browse files
committed
Change if react version supports Fast Refresh
- Remove FR warning for older react version
1 parent 10fa972 commit 0d63f72

File tree

3 files changed

+8
-16
lines changed

3 files changed

+8
-16
lines changed

packages/react-dev-utils/webpackHotDevClient.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ function tryApplyUpdates(onHotUpdateSuccess) {
243243
}
244244

245245
function handleApplyUpdates(err, updatedModules) {
246-
const hasReactRefresh = process.env.FAST_REFRESH !== 'false';
246+
const hasReactRefresh = process.env.FAST_REFRESH;
247247
const wantsForcedReload = err || !updatedModules || hadRuntimeError;
248248
// React refresh can handle hot-reloading over errors.
249249
if (!hasReactRefresh && wantsForcedReload) {

packages/react-scripts/config/env.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
const fs = require('fs');
1212
const path = require('path');
1313
const paths = require('./paths');
14+
const semver = require('semver');
15+
const react = require(require.resolve('react', { paths: [paths.appPath] }));
1416

1517
// Make sure that including paths.js after env.js will read .env variables.
1618
delete require.cache[require.resolve('./paths')];
@@ -94,10 +96,12 @@ function getClientEnvironment(publicUrl) {
9496
WDS_SOCKET_PATH: process.env.WDS_SOCKET_PATH,
9597
WDS_SOCKET_PORT: process.env.WDS_SOCKET_PORT,
9698
// Whether or not react-refresh is enabled.
97-
// react-refresh is not 100% stable at this time,
98-
// which is why it's disabled by default.
9999
// It is defined here so it is available in the webpackHotDevClient.
100-
FAST_REFRESH: process.env.FAST_REFRESH !== 'false',
100+
// Fast Refresh is available in React 16.10.0 or greater
101+
// For older versions will fallback to full reload
102+
FAST_REFRESH:
103+
semver.gte(react.version, '16.10.0') &&
104+
process.env.FAST_REFRESH !== 'false',
101105
}
102106
);
103107
// Stringify all values so we can feed into webpack DefinePlugin

packages/react-scripts/scripts/start.js

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,10 @@ const {
4444
prepareUrls,
4545
} = require('react-dev-utils/WebpackDevServerUtils');
4646
const openBrowser = require('react-dev-utils/openBrowser');
47-
const semver = require('semver');
4847
const paths = require('../config/paths');
4948
const configFactory = require('../config/webpack.config');
5049
const createDevServerConfig = require('../config/webpackDevServer.config');
51-
const getClientEnvironment = require('../config/env');
52-
const react = require(require.resolve('react', { paths: [paths.appPath] }));
5350

54-
const env = getClientEnvironment(paths.publicUrlOrPath.slice(0, -1));
5551
const useYarn = fs.existsSync(paths.yarnLockFile);
5652
const isInteractive = process.stdout.isTTY;
5753

@@ -147,14 +143,6 @@ checkBrowsers(paths.appPath, isInteractive)
147143
clearConsole();
148144
}
149145

150-
if (env.raw.FAST_REFRESH && semver.lt(react.version, '16.10.0')) {
151-
console.log(
152-
chalk.yellow(
153-
`Fast Refresh requires React 16.10 or higher. You are using React ${react.version}.`
154-
)
155-
);
156-
}
157-
158146
console.log(chalk.cyan('Starting the development server...\n'));
159147
openBrowser(urls.localUrlForBrowser);
160148
});

0 commit comments

Comments
 (0)