diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index 7c953c3544e1bb1b4a0337cf47b43c01ca7cf378..e5272b3792a3ce96b3519f5823273bc6b37a0613 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -133,7 +133,16 @@ 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 compile.', [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 443cd449a3d899972fe0774c3611a47d1e810a67..913ece9eb6c49597971e87474490bdf0e20cb72d 100644 --- a/packages/react-scripts/scripts/start.js +++ b/packages/react-scripts/scripts/start.js @@ -63,7 +63,15 @@ 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 compile.')); + 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