42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
|
const getCacheIdentifier = require("react-dev-utils/getCacheIdentifier");
|
||
|
|
||
|
const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false";
|
||
|
|
||
|
module.exports = function override(config, webpackEnv) {
|
||
|
console.log("overriding webpack config...");
|
||
|
|
||
|
const isEnvDevelopment = webpackEnv === "development";
|
||
|
const isEnvProduction = webpackEnv === "production";
|
||
|
const loaders = config.module.rules[1].oneOf;
|
||
|
|
||
|
loaders.splice(loaders.length - 1, 0, {
|
||
|
test: /\.(js|mjs|cjs)$/,
|
||
|
exclude: /@babel(?:\/|\\{1,2})runtime/,
|
||
|
loader: require.resolve("babel-loader"),
|
||
|
options: {
|
||
|
babelrc: false,
|
||
|
configFile: false,
|
||
|
compact: false,
|
||
|
presets: [[require.resolve("babel-preset-react-app/dependencies"), { helpers: true }]],
|
||
|
cacheDirectory: true,
|
||
|
// See #6846 for context on why cacheCompression is disabled
|
||
|
cacheCompression: false,
|
||
|
// @remove-on-eject-begin
|
||
|
cacheIdentifier: getCacheIdentifier(isEnvProduction ? "production" : isEnvDevelopment && "development", [
|
||
|
"babel-plugin-named-asset-import",
|
||
|
"babel-preset-react-app",
|
||
|
"react-dev-utils",
|
||
|
"react-scripts"
|
||
|
]),
|
||
|
// @remove-on-eject-end
|
||
|
// Babel sourcemaps are needed for debugging into node_modules
|
||
|
// code. Without the options below, debuggers like VSCode
|
||
|
// show incorrect code and set breakpoints on the wrong lines.
|
||
|
sourceMaps: shouldUseSourceMap,
|
||
|
inputSourceMap: shouldUseSourceMap
|
||
|
}
|
||
|
});
|
||
|
|
||
|
return config;
|
||
|
};
|