diff --git a/node_modules/react-scripts/config/webpack.config.js b/node_modules/react-scripts/config/webpack.config.js index e465d8e..19a2c01 100644 --- a/node_modules/react-scripts/config/webpack.config.js +++ b/node_modules/react-scripts/config/webpack.config.js @@ -106,6 +106,9 @@ module.exports = function (webpackEnv) { const isEnvProductionProfile = isEnvProduction && process.argv.includes('--profile'); + const isEnvProductionTest = + isEnvProduction && process.argv.includes('--test'); + // We will provide `paths.publicUrlOrPath` to our app // as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript. // Omit trailing slash as %PUBLIC_URL%/xyz looks better than %PUBLIC_URL%xyz. @@ -256,7 +259,7 @@ module.exports = function (webpackEnv) { level: 'none', }, optimization: { - minimize: isEnvProduction, + minimize: isEnvProduction && !isEnvProductionTest, minimizer: [ // This is only used in production mode new TerserPlugin({ @@ -304,6 +307,14 @@ module.exports = function (webpackEnv) { }, resolve: { // This allows you to set a fallback for where webpack should look for modules. + fallback: { + crypto: false, + module: false, + dgram: false, + path: false, + url: false, + fs: false + }, // We placed these paths second because we want `node_modules` to "win" // if there are any conflicts. This matches Node resolution mechanism. // https://github.com/facebook/create-react-app/issues/253 @@ -320,13 +331,19 @@ module.exports = function (webpackEnv) { .map(ext => `.${ext}`) .filter(ext => useTypeScript || !ext.includes('ts')), alias: { + "react": path.resolve(path.join(__dirname,'../../react')), + "react-dom": path.resolve(path.join(__dirname,'../../react-dom')), + "@mdi/js": path.resolve(path.join(__dirname,'../../@mdi/js')), + "@mdi/react": path.resolve(path.join(__dirname,'../../@mdi/react')), + "@emotion/react": path.resolve(path.join(__dirname,'../../@emotion/react')), + // Support React Native Web // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ 'react-native': 'react-native-web', // Allows for better profiling with ReactDevTools ...(isEnvProductionProfile && { 'react-dom$': 'react-dom/profiling', - 'scheduler/tracing': 'scheduler/tracing-profiling', + 'scheduler/tracing': 'scheduler/tracing-profiling' }), ...(modules.webpackAliases || {}), }, @@ -336,14 +353,14 @@ module.exports = function (webpackEnv) { // To fix this, we prevent you from importing files out of src/ -- if you'd like to, // please link the files into your node_modules/ and let module-resolution kick in. // Make sure your source files are compiled, as they will not be processed in any way. - new ModuleScopePlugin(paths.appSrc, [ - paths.appPackageJson, - reactRefreshRuntimeEntry, - reactRefreshWebpackPluginRuntimeEntry, - babelRuntimeEntry, - babelRuntimeEntryHelpers, - babelRuntimeRegenerator, - ]), + // new ModuleScopePlugin(paths.appSrc, [ + // paths.appPackageJson, + // reactRefreshRuntimeEntry, + // reactRefreshWebpackPluginRuntimeEntry, + // babelRuntimeEntry, + // babelRuntimeEntryHelpers, + // babelRuntimeRegenerator, + // ]), ], }, module: { @@ -353,7 +370,7 @@ module.exports = function (webpackEnv) { shouldUseSourceMap && { enforce: 'pre', exclude: /@babel(?:\/|\\{1,2})runtime/, - test: /\.(js|mjs|jsx|ts|tsx|css)$/, + test: /\.(cjs|js|mjs|jsx|ts|tsx|css)$/, loader: require.resolve('source-map-loader'), }, { @@ -408,13 +425,13 @@ module.exports = function (webpackEnv) { }, ], issuer: { - and: [/\.(ts|tsx|js|jsx|md|mdx)$/], + and: [/\.(ts|tsx|cjs|js|jsx|md|mdx)$/], }, }, // Process application JS with Babel. // The preset includes JSX, Flow, TypeScript, and some ESnext features. { - test: /\.(js|mjs|jsx|ts|tsx)$/, + test: /\.(cjs|js|mjs|jsx|ts|tsx)$/, include: paths.appSrc, loader: require.resolve('babel-loader'), options: { @@ -452,7 +469,7 @@ module.exports = function (webpackEnv) { plugins: [ isEnvDevelopment && shouldUseReactRefresh && - require.resolve('react-refresh/babel'), + require.resolve('react-refresh/babel') ].filter(Boolean), // This is a feature of `babel-loader` for webpack (not Babel itself). // It enables caching results in ./node_modules/.cache/babel-loader/ @@ -460,13 +477,13 @@ module.exports = function (webpackEnv) { cacheDirectory: true, // See #6846 for context on why cacheCompression is disabled cacheCompression: false, - compact: isEnvProduction, + compact: isEnvProduction && !isEnvProductionTest, }, }, // Process any JS outside of the app with Babel. // Unlike the application JS, we only compile the standard ES features. { - test: /\.(js|mjs)$/, + test: /\.(cjs|js|mjs)$/, exclude: /@babel(?:\/|\\{1,2})runtime/, loader: require.resolve('babel-loader'), options: { @@ -594,7 +611,7 @@ module.exports = function (webpackEnv) { // its runtime that would otherwise be processed through "file" loader. // Also exclude `html` and `json` extensions so they get processed // by webpacks internal loaders. - exclude: [/^$/, /\.(js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/], + exclude: [/^$/, /\.(cjs|js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/], type: 'asset/resource', }, // ** STOP ** Are you adding a new loader?