diff --git a/.gitignore b/.gitignore index 7444dad4ec2..fee830829d3 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ template/src/__tests__/__snapshots__/ lerna-debug.log npm-debug.log /.changelog +.idea diff --git a/config/webpack.config.dev.override.js b/config/webpack.config.dev.override.js new file mode 100644 index 00000000000..f162018c514 --- /dev/null +++ b/config/webpack.config.dev.override.js @@ -0,0 +1,3 @@ +module.exports = function overrideDevConfig(config) { + return config; +} diff --git a/config/webpack.config.prod.override.js b/config/webpack.config.prod.override.js new file mode 100644 index 00000000000..87526e7e7da --- /dev/null +++ b/config/webpack.config.prod.override.js @@ -0,0 +1,3 @@ +module.exports = function overrideProdConfig(config) { + return config; +} diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 96fd632b795..6f2f7a04a2b 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -36,7 +36,7 @@ var env = getClientEnvironment(publicUrl); // This is the development configuration. // It is focused on developer experience and fast rebuilds. // The production configuration is different and lives in a separate file. -module.exports = { +module.exports = require('./webpack.config.dev.override')({ // You may want 'eval' instead if you prefer to see the compiled output in DevTools. // See the discussion in https://github.com/facebookincubator/create-react-app/issues/343. devtool: 'cheap-module-source-map', @@ -235,4 +235,4 @@ module.exports = { net: 'empty', tls: 'empty' } -}; +}); diff --git a/packages/react-scripts/config/webpack.config.dev.override.js b/packages/react-scripts/config/webpack.config.dev.override.js new file mode 100644 index 00000000000..05c4baeff0a --- /dev/null +++ b/packages/react-scripts/config/webpack.config.dev.override.js @@ -0,0 +1,13 @@ +var overrideConfig = function(config) { + return config; +}; + +// @remove-on-eject-begin +var path = require('path'); +var overrideConfigPath = path.resolve(process.cwd(), 'config/webpack.config.dev.override.js'); +overrideConfig = require(overrideConfigPath); +// @remove-on-eject-end + +module.exports = function devConfigOverride(config) { + return overrideConfig(config); +}; diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 058db0d7921..24a665047d7 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -61,7 +61,7 @@ if (env['process.env'].NODE_ENV !== '"production"') { // This is the production configuration. // It compiles slowly and is focused on producing a fast and minimal bundle. // The development configuration is different and lives in a separate file. -module.exports = { +module.exports = require('./webpack.config.prod.override')({ // Don't attempt to continue if there are any errors. bail: true, // We generate sourcemaps in production. This is slow but gives good results. @@ -277,4 +277,4 @@ module.exports = { net: 'empty', tls: 'empty' } -}; +}); diff --git a/packages/react-scripts/config/webpack.config.prod.override.js b/packages/react-scripts/config/webpack.config.prod.override.js new file mode 100644 index 00000000000..e5aaa244538 --- /dev/null +++ b/packages/react-scripts/config/webpack.config.prod.override.js @@ -0,0 +1,13 @@ +var overrideConfig = function(config) { + return config; +}; + +// @remove-on-eject-begin +var path = require('path'); +var overrideConfigPath = path.resolve(process.cwd(), 'config/webpack.config.prod.override.js'); +overrideConfig = require(overrideConfigPath); +// @remove-on-eject-end + +module.exports = function prodConfigOverride(config) { + return overrideConfig(config); +}; diff --git a/packages/react-scripts/scripts/eject.js b/packages/react-scripts/scripts/eject.js index aeed2967d06..1fba20587ca 100644 --- a/packages/react-scripts/scripts/eject.js +++ b/packages/react-scripts/scripts/eject.js @@ -54,7 +54,9 @@ prompt( path.join('config', 'paths.js'), path.join('config', 'polyfills.js'), path.join('config', 'webpack.config.dev.js'), + path.join('config', 'webpack.config.dev.override.js'), path.join('config', 'webpack.config.prod.js'), + path.join('config', 'webpack.config.prod.override.js'), path.join('config', 'jest', 'cssTransform.js'), path.join('config', 'jest', 'fileTransform.js'), path.join('scripts', 'build.js'),