Skip to content

extract generic build functions to react-dev-utils #1726

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 21 commits into from
Mar 6, 2017
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
combine printFileSizes and removeFileNameHash to fileSizeReporter
  • Loading branch information
viankakrisna authored and gaearon committed Mar 6, 2017
commit c5184d05e37b08fb6f33c1987d553755b4358edb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ var filesize = require('filesize');
var stripAnsi = require('strip-ansi');
var gzipSize = require('gzip-size').sync;
// Print a detailed summary of build files.
module.exports = function printFileSizes(appBuild, stats, previousSizeMap) {
function printFileSizesAfterBuild(appBuild, stats, previousSizeMap) {
var assets = stats
.toJson()
.assets.filter(asset => /\.(js|css)$/.test(asset.name))
Expand Down Expand Up @@ -66,4 +66,20 @@ function getDifferenceLabel(currentSize, previousSize) {
}
};

function measureFileSizesBeforeBuild(appBuild, fileNames){
return (fileNames || [])
.filter(fileName => /\.(js|css)$/.test(fileName))
.reduce((memo, fileName) => {
var contents = fs.readFileSync(fileName);
var key = removeFileNameHash(appBuild, fileName);
memo[key] = gzipSize(contents);
return memo;
}, {});
}

module.exports = {
measureFileSizesBeforeBuild: measureFileSizesBeforeBuild,
printFileSizesAfterBuild: printFileSizesAfterBuild
}


5 changes: 0 additions & 5 deletions packages/react-dev-utils/removeFileNameHash.js

This file was deleted.

14 changes: 3 additions & 11 deletions packages/react-scripts/scripts/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ var webpack = require('webpack');
var config = require('../config/webpack.config.prod');
var paths = require('../config/paths');
var checkRequiredFiles = require('react-dev-utils/checkRequiredFiles');
var printFileSizes = require('react-dev-utils/printFileSizes');
var removeFileNameHash = require('react-dev-utils/removeFileNameHash');
var fileSizeReporter = require('react-dev-utils/fileSizeReporter');
var recursive = require('recursive-readdir');
var stripAnsi = require('strip-ansi');

Expand All @@ -43,14 +42,7 @@ if (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) {
// First, read the current file sizes in build directory.
// This lets us display how much they changed later.
recursive(paths.appBuild, (err, fileNames) => {
var previousSizeMap = (fileNames || [])
.filter(fileName => /\.(js|css)$/.test(fileName))
.reduce((memo, fileName) => {
var contents = fs.readFileSync(fileName);
var key = removeFileNameHash(paths.appBuild, fileName);
memo[key] = gzipSize(contents);
return memo;
}, {});
var previousSizeMap = fileSizeReporter.measureFileSizesBeforeBuild(paths, fileNames);

// Remove all content but keep the directory so that
// if you're in it, you don't end up in Trash
Expand Down Expand Up @@ -110,7 +102,7 @@ function build(previousSizeMap) {

console.log('File sizes after gzip:');
console.log();
printFileSizes(paths.appBuild, stats, previousSizeMap);
fileSizeReporter.printFileSizesAfterBuild(paths.appBuild, stats, previousSizeMap);
console.log();

var openCommand = process.platform === 'win32' ? 'start' : 'open';
Expand Down