From 2e8444b8bc0ef55a159e2f0a340a8a2879a10eb8 Mon Sep 17 00:00:00 2001 From: Johann Hubert Sonntagbauer Date: Mon, 20 Feb 2017 15:15:27 +0100 Subject: [PATCH 1/4] (feat): add webpack validation error logging --- packages/react-scripts/scripts/build.js | 13 ++++++++++++- packages/react-scripts/scripts/start.js | 11 ++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index 7c953c3544e..9fbdcc51df1 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -133,7 +133,18 @@ function printErrors(summary, errors) { // Create the production build and print the deployment instructions. function build(previousSizeMap) { console.log('Creating an optimized production build...'); - webpack(config).run((err, stats) => { + + var compiler; + + try { + compiler = webpack(config); + } + catch(err) { + printErrors('Failed to configure webpack.', [err]); + process.exit(1); + } + + compiler.run((err, stats) => { if (err) { printErrors('Failed to compile.', [err]); process.exit(1); diff --git a/packages/react-scripts/scripts/start.js b/packages/react-scripts/scripts/start.js index 443cd449a3d..256b4a6683a 100644 --- a/packages/react-scripts/scripts/start.js +++ b/packages/react-scripts/scripts/start.js @@ -63,7 +63,16 @@ if (isSmokeTest) { function setupCompiler(host, port, protocol) { // "Compiler" is a low-level interface to Webpack. // It lets us listen to some events and provide our own custom messages. - compiler = webpack(config, handleCompile); + try { + compiler = webpack(config, handleCompile); + } + catch(err) { + console.log(chalk.red('Failed to setup webpack')); + console.log(); + console.log(err.message || err); + console.log(); + process.exit(1); + } // "invalid" event fires when you have changed a file, and Webpack is // recompiling a bundle. WebpackDevServer takes care to pause serving the From 396e543b538b8b5c6379d87786819ba3ee26d496 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 24 Feb 2017 17:27:09 +0000 Subject: [PATCH 2/4] Style nit --- packages/react-scripts/scripts/build.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index 9fbdcc51df1..f272500e12e 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -138,9 +138,8 @@ function build(previousSizeMap) { try { compiler = webpack(config); - } - catch(err) { - printErrors('Failed to configure webpack.', [err]); + } catch (err) { + printErrors('Failed to compile.', [err]); process.exit(1); } From 808cbf63a3e7749b1d6437673c2d97e2fb7d6d11 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 24 Feb 2017 17:27:46 +0000 Subject: [PATCH 3/4] Style tweak --- packages/react-scripts/scripts/start.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/react-scripts/scripts/start.js b/packages/react-scripts/scripts/start.js index 256b4a6683a..913ece9eb6c 100644 --- a/packages/react-scripts/scripts/start.js +++ b/packages/react-scripts/scripts/start.js @@ -65,9 +65,8 @@ function setupCompiler(host, port, protocol) { // It lets us listen to some events and provide our own custom messages. try { compiler = webpack(config, handleCompile); - } - catch(err) { - console.log(chalk.red('Failed to setup webpack')); + } catch (err) { + console.log(chalk.red('Failed to compile.')); console.log(); console.log(err.message || err); console.log(); From a64401b31e96c932bf68ee5a250e54f0475ba7d3 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 24 Feb 2017 17:28:07 +0000 Subject: [PATCH 4/4] Style nit --- packages/react-scripts/scripts/build.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index f272500e12e..e5272b3792a 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -135,7 +135,6 @@ function build(previousSizeMap) { console.log('Creating an optimized production build...'); var compiler; - try { compiler = webpack(config); } catch (err) {