-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.js
32 lines (29 loc) · 958 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const { addBabelPlugin, addWebpackPlugin, override } = require("customize-cra");
const ReactRefreshPlugin = require("@pmmmwh/react-refresh-webpack-plugin");
const webpackDevClientEntry = require.resolve(
"react-dev-utils/webpackHotDevClient"
);
const paths = require("react-scripts/config/paths");
const overrideEntry = () => (config) => {
config.entry = paths.appIndexJs;
return config;
};
/**
* @param {ReactRefreshPluginOptions} [options] Options for react-refresh-plugin.
*/
const isDevelopment = process.env.NODE_ENV !== "production";
const addReactRefresh = (options = {}) =>
override(
isDevelopment && overrideEntry(),
isDevelopment && addBabelPlugin(require.resolve("react-refresh/babel")),
isDevelopment &&
addWebpackPlugin(
new ReactRefreshPlugin({
overlay: {
entry: webpackDevClientEntry,
},
...options,
})
)
);
module.exports = { addReactRefresh };