From ad033eb482e50ac6cbdb4417db5ef19df8d1929d Mon Sep 17 00:00:00 2001 From: Yanglin Zhao Date: Fri, 23 Dec 2016 11:57:02 -0500 Subject: [PATCH 1/2] Add hooks for overrides --- .gitignore | 1 + packages/react-scripts/config/webpack.config.dev.js | 4 ++-- packages/react-scripts/config/webpack.config.dev.override.js | 5 +++++ packages/react-scripts/config/webpack.config.prod.js | 4 ++-- .../react-scripts/config/webpack.config.prod.override.js | 5 +++++ packages/react-scripts/scripts/eject.js | 2 ++ 6 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 packages/react-scripts/config/webpack.config.dev.override.js create mode 100644 packages/react-scripts/config/webpack.config.prod.override.js 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/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..e274f783fb9 --- /dev/null +++ b/packages/react-scripts/config/webpack.config.dev.override.js @@ -0,0 +1,5 @@ +function devConfigOverride(config) { + return config; +} + +module.exports = devConfigOverride; 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..7d2ab0d182c --- /dev/null +++ b/packages/react-scripts/config/webpack.config.prod.override.js @@ -0,0 +1,5 @@ +function prodConfigOverride(config) { + return config; +} + +module.exports = prodConfigOverride; 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'), From 5be5d630b15f701b51f8d3d0a895ffb563e85b1c Mon Sep 17 00:00:00 2001 From: Yanglin Zhao Date: Fri, 23 Dec 2016 17:40:19 -0500 Subject: [PATCH 2/2] Add override configs --- config/webpack.config.dev.override.js | 3 +++ config/webpack.config.prod.override.js | 3 +++ .../config/webpack.config.dev.override.js | 14 +++++++++++--- .../config/webpack.config.prod.override.js | 14 +++++++++++--- 4 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 config/webpack.config.dev.override.js create mode 100644 config/webpack.config.prod.override.js 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.override.js b/packages/react-scripts/config/webpack.config.dev.override.js index e274f783fb9..05c4baeff0a 100644 --- a/packages/react-scripts/config/webpack.config.dev.override.js +++ b/packages/react-scripts/config/webpack.config.dev.override.js @@ -1,5 +1,13 @@ -function devConfigOverride(config) { +var overrideConfig = function(config) { return config; -} +}; -module.exports = devConfigOverride; +// @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.override.js b/packages/react-scripts/config/webpack.config.prod.override.js index 7d2ab0d182c..e5aaa244538 100644 --- a/packages/react-scripts/config/webpack.config.prod.override.js +++ b/packages/react-scripts/config/webpack.config.prod.override.js @@ -1,5 +1,13 @@ -function prodConfigOverride(config) { +var overrideConfig = function(config) { return config; -} +}; -module.exports = prodConfigOverride; +// @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); +};