11#!/usr/bin/env node
22
3+ const Module = require ( "module" ) ;
4+
35const get = prop => value => value [ prop ] ;
46const flatten = ( others , next ) => others . concat ( next ) ;
57const getLoadersFromRules = ( rules , path , loaderName ) =>
@@ -13,12 +15,11 @@ const getLoadersFromRules = (rules, path, loaderName) =>
1315const script = process . argv [ 2 ] || "start" ;
1416process . env . NODE_ENV = script === "build" ? "production" : "development" ;
1517
16- const webpackConfigPath = `react-scripts/config/webpack.config.${
17- script === "build" ? "prod" : "dev"
18- } `;
18+ const webpackConfigPath = "react-scripts/config/webpack.config" ;
19+ const createJestConfigPath = "react-scripts/scripts/utils/createJestConfig" ;
1920
2021// load original configs
21- const webpackConfig = require ( webpackConfigPath ) ;
22+ const webpackConfig = require ( webpackConfigPath ) ( process . env . NODE_ENV ) ;
2223if ( ! webpackConfig ) {
2324 throw new Error ( `no Webpack config found for: ${ webpackConfigPath } ` ) ;
2425}
@@ -61,7 +62,27 @@ babelOptions.plugins = (babelOptions.plugins || []).concat([
6162] ) ;
6263
6364// override config in cache
64- require . cache [ require . resolve ( webpackConfigPath ) ] . exports = webpackConfig ;
65+ require . cache [ require . resolve ( webpackConfigPath ) ] . exports = ( ) => webpackConfig ;
66+
67+ const createJestConfig = require ( createJestConfigPath ) ;
68+ require . cache [ require . resolve ( createJestConfigPath ) ] . exports = ( ...args ) => {
69+ const jestConfig = createJestConfig ( ...args ) ;
70+ for ( let key in jestConfig . transform ) {
71+ if ( jestConfig . transform [ key ] . includes ( "fileTransform" ) ) {
72+ jestConfig . transform [ key ] = require . resolve ( "./dummyTransform" ) ;
73+ }
74+ }
75+ return jestConfig ;
76+ } ;
77+
78+ // Mock React module with dummy latest version
79+ require . cache [ require . resolve ( "resolve" ) ] . exports . sync = require . resolve ;
80+ const _resolveFilename = Module . _resolveFilename ;
81+ Module . _resolveFilename = ( request , parent ) =>
82+ request === "react" ? "react" : _resolveFilename ( request , parent ) ;
83+ require . cache [ "react" ] = {
84+ exports : { version : "999.999.999" }
85+ } ;
6586
6687// call original react script
6788require ( `react-scripts/scripts/${ script } .js` ) ;
0 commit comments