From b8da58499a8dd2e91feab117dedf127f0d9d59e4 Mon Sep 17 00:00:00 2001 From: Joe Haddad <timer150@gmail.com> Date: Sat, 22 Sep 2018 13:44:58 -0400 Subject: [PATCH] Optimize webpack rebuild speed (#5065) Derived from https://github.com/facebook/create-react-app/issues/4492#issuecomment-421959548 --- packages/react-dev-utils/FileSizeReporter.js | 2 +- packages/react-dev-utils/WebpackDevServerUtils.js | 6 +++++- packages/react-scripts/scripts/build.js | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/react-dev-utils/FileSizeReporter.js b/packages/react-dev-utils/FileSizeReporter.js index e33eedda6..221005fd8 100644 --- a/packages/react-dev-utils/FileSizeReporter.js +++ b/packages/react-dev-utils/FileSizeReporter.js @@ -28,7 +28,7 @@ function printFileSizesAfterBuild( var assets = (webpackStats.stats || [webpackStats]) .map(stats => stats - .toJson() + .toJson({ all: false, assets: true }) .assets.filter(asset => /\.(js|css)$/.test(asset.name)) .map(asset => { var fileContents = fs.readFileSync(path.join(root, asset.name)); diff --git a/packages/react-dev-utils/WebpackDevServerUtils.js b/packages/react-dev-utils/WebpackDevServerUtils.js index bc0378459..f83c722a0 100644 --- a/packages/react-dev-utils/WebpackDevServerUtils.js +++ b/packages/react-dev-utils/WebpackDevServerUtils.js @@ -150,7 +150,11 @@ function createCompiler(webpack, config, appName, urls, useYarn) { // We have switched off the default Webpack output in WebpackDevServer // options so we are going to "massage" the warnings and errors and present // them in a readable focused way. - const messages = formatWebpackMessages(stats.toJson({}, true)); + // We only construct the warnings and errors for speed: + // https://github.com/facebook/create-react-app/issues/4492#issuecomment-421959548 + const messages = formatWebpackMessages( + stats.toJson({ all: false, warnings: true, errors: true }) + ); const isSuccessful = !messages.errors.length && !messages.warnings.length; if (isSuccessful) { console.log(chalk.green('Compiled successfully!')); diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index bc0f81b1d..6f2cdb40d 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -142,7 +142,9 @@ function build(previousFileSizes) { if (err) { return reject(err); } - const messages = formatWebpackMessages(stats.toJson({}, true)); + const messages = formatWebpackMessages( + stats.toJson({ all: false, warnings: true, errors: true }) + ); if (messages.errors.length) { // Only keep the first error. Others are often indicative // of the same problem, but confuse the reader with noise. -- GitLab