diff --git a/packages/react-dev-utils/WebpackDevServerUtils.js b/packages/react-dev-utils/WebpackDevServerUtils.js
index 8a66b15ec0c49148a336911e4e6ab675d20b52aa..1cd060592f9547fdf71a1c788e65e94c0559d30c 100644
--- a/packages/react-dev-utils/WebpackDevServerUtils.js
+++ b/packages/react-dev-utils/WebpackDevServerUtils.js
@@ -164,6 +164,11 @@ function createCompiler(webpack, config, appName, urls, useYarn) {
 
     // If errors exist, only show errors.
     if (messages.errors.length) {
+      // Only keep the first error. Others are often indicative
+      // of the same problem, but confuse the reader with noise.
+      if (messages.errors.length > 1) {
+        messages.errors.length = 1;
+      }
       console.log(chalk.red('Failed to compile.\n'));
       console.log(messages.errors.join('\n\n'));
       return;
diff --git a/packages/react-dev-utils/formatWebpackMessages.js b/packages/react-dev-utils/formatWebpackMessages.js
index 5dfd099c65c47a037cf5662d93659ff2288a1394..a5176b920497a6daa0a97502ffc8300cca9e6c2e 100644
--- a/packages/react-dev-utils/formatWebpackMessages.js
+++ b/packages/react-dev-utils/formatWebpackMessages.js
@@ -121,11 +121,6 @@ function formatWebpackMessages(json) {
     // preceding a much more useful Babel syntax error.
     result.errors = result.errors.filter(isLikelyASyntaxError);
   }
-  // Only keep the first error. Others are often indicative
-  // of the same problem, but confuse the reader with noise.
-  if (result.errors.length > 1) {
-    result.errors.length = 1;
-  }
   return result;
 }
 
diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js
index 5ad12ab12b6e7ab180dba98a3188a47df05bbd4f..7691bfd5282e92f759e795f3c4a30853d45b3a2d 100644
--- a/packages/react-scripts/scripts/build.js
+++ b/packages/react-scripts/scripts/build.js
@@ -122,6 +122,11 @@ function build(previousFileSizes) {
       }
       const messages = formatWebpackMessages(stats.toJson({}, true));
       if (messages.errors.length) {
+        // Only keep the first error. Others are often indicative
+        // of the same problem, but confuse the reader with noise.
+        if (messages.errors.length > 1) {
+          messages.errors.length = 1;
+        }
         return reject(new Error(messages.errors.join('\n\n')));
       }
       if (