diff --git a/packages/react-scripts/config/jest/babelTransform.js b/packages/react-scripts/config/jest/babelTransform.js index 7feed94c59a2252fc268a37a7f078630b120b62d..da68b4f71bdf86af8a2e910e81457145ac1dd970 100644 --- a/packages/react-scripts/config/jest/babelTransform.js +++ b/packages/react-scripts/config/jest/babelTransform.js @@ -11,6 +11,7 @@ const babelJest = require('babel-jest'); module.exports = babelJest.createTransformer({ presets: [require.resolve('babel-preset-react-app')], + plugins: [require.resolve('babel-plugin-rewire')], babelrc: false, configFile: false, }); diff --git a/packages/react-scripts/config/paths.js b/packages/react-scripts/config/paths.js index 11d81b7f5a76b37922c107025d6144d7aa8cc436..e2895051bdf59c201aae1e3b48985402a4b6e388 100644 --- a/packages/react-scripts/config/paths.js +++ b/packages/react-scripts/config/paths.js @@ -63,14 +63,14 @@ module.exports = { appBuild: resolveApp('build'), appPublic: resolveApp('public'), appHtml: resolveApp('public/index.html'), - appIndexJs: resolveModule(resolveApp, 'src/index'), + appIndexJs: resolveModule(resolveApp, 'raw/index'), appPackageJson: resolveApp('package.json'), - appSrc: resolveApp('src'), + appSrc: resolveApp('raw'), appTsConfig: resolveApp('tsconfig.json'), appJsConfig: resolveApp('jsconfig.json'), yarnLockFile: resolveApp('yarn.lock'), - testsSetup: resolveModule(resolveApp, 'src/setupTests'), - proxySetup: resolveApp('src/setupProxy.js'), + testsSetup: resolveModule(resolveApp, 'raw/setupTests'), + proxySetup: resolveApp('raw/setupProxy.js'), appNodeModules: resolveApp('node_modules'), publicUrlOrPath, }; @@ -85,20 +85,20 @@ module.exports = { appBuild: resolveApp('build'), appPublic: resolveApp('public'), appHtml: resolveApp('public/index.html'), - appIndexJs: resolveModule(resolveApp, 'src/index'), + appIndexJs: resolveModule(resolveApp, 'raw/index'), appPackageJson: resolveApp('package.json'), - appSrc: resolveApp('src'), + appSrc: resolveApp('raw'), appTsConfig: resolveApp('tsconfig.json'), appJsConfig: resolveApp('jsconfig.json'), yarnLockFile: resolveApp('yarn.lock'), - testsSetup: resolveModule(resolveApp, 'src/setupTests'), - proxySetup: resolveApp('src/setupProxy.js'), + testsSetup: resolveModule(resolveApp, 'raw/setupTests'), + proxySetup: resolveApp('raw/setupProxy.js'), appNodeModules: resolveApp('node_modules'), publicUrlOrPath, // These properties only exist before ejecting: ownPath: resolveOwn('.'), ownNodeModules: resolveOwn('node_modules'), // This is empty on npm 3 - appTypeDeclarations: resolveApp('src/react-app-env.d.ts'), + appTypeDeclarations: resolveApp('raw/react-app-env.d.ts'), ownTypeDeclarations: resolveOwn('lib/react-app.d.ts'), }; diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 63e7faf390ca6d507e75ad8df958ded71c4b99b1..73149997ecb056130b3f38c83f788d9097a0fbbe 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,7 +1,7 @@ { - "name": "react-scripts", + "name": "@rewireltd/react-scripts", "version": "3.4.1", - "description": "Configuration and scripts for Create React App.", + "description": "Rewire LTD. Configuration and scripts for Create React App.", "repository": { "type": "git", "url": "https://github.com/facebook/create-react-app.git", @@ -82,6 +82,7 @@ "workbox-webpack-plugin": "4.3.1" }, "devDependencies": { + "babel-plugin-rewire": "^1.2.0", "react": "^16.12.0", "react-dom": "^16.12.0" }, diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index fa30fb09a3f118885e0fd1eb81cd444ee3abb3f5..83d134fe0bf41253bfca2efe39bb380f8ec48eea 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -35,7 +35,7 @@ const path = require('path'); const chalk = require('react-dev-utils/chalk'); const fs = require('fs-extra'); const webpack = require('webpack'); -const configFactory = require('../config/webpack.config'); +const configFactory = require(process.env.WEBPACK_CONFIG_FACTORY || '../config/webpack.config'); const paths = require('../config/paths'); const checkRequiredFiles = require('react-dev-utils/checkRequiredFiles'); const formatWebpackMessages = require('react-dev-utils/formatWebpackMessages'); diff --git a/packages/react-scripts/scripts/start.js b/packages/react-scripts/scripts/start.js index 2568ab36db18d4e733ef8f578f3b242f1c0c9987..bb62bcdf79c377e91552b6984acb04021ca36252 100644 --- a/packages/react-scripts/scripts/start.js +++ b/packages/react-scripts/scripts/start.js @@ -45,7 +45,7 @@ const { } = require('react-dev-utils/WebpackDevServerUtils'); const openBrowser = require('react-dev-utils/openBrowser'); const paths = require('../config/paths'); -const configFactory = require('../config/webpack.config'); +const configFactory = require(process.env.WEBPACK_CONFIG_FACTORY || '../config/webpack.config'); const createDevServerConfig = require('../config/webpackDevServer.config'); const useYarn = fs.existsSync(paths.yarnLockFile);