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;
|
|
};
|